Cette page explique comment stocker des artefacts immuables et avec gestion des versions qui ne respectent aucun format de package spécifique dans les dépôts au format générique Artifact Registry.
Pour vous familiariser avec le stockage d'artefacts génériques dans Artifact Registry, consultez le quickstart.
Les artefacts génériques sont des fichiers de n'importe quel format, y compris, mais sans s'y limiter, les fichiers suivants:
- Fichiers compressés, tels que les fichiers tar et zip
- Fichiers de configuration, tels que YAML et TOML
- Fichiers texte et PDF
- Binaires
- Archives
- Fichiers multimédias
Contrairement à d'autres formats, les artefacts stockés dans des dépôts au format générique ne sont pas destinés à être utilisés par Docker, les gestionnaires de packages ou d'autres clients tiers.
Avant de commencer
- Créez un dépôt de format générique.
- Vérifiez que vous disposez des autorisations requises pour le dépôt.
- (Facultatif) Configurez les valeurs par défaut pour les commandes de la Google Cloud CLI.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour gérer les artefacts génériques, demandez à votre administrateur de vous attribuer les rôles IAM suivants dans le dépôt:
-
Affichez les artefacts : Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Téléchargez les artefacts : Lecteur Artifact Registry (
roles/artifactregistry.reader
) -
Importez des artefacts dans un dépôt : Artifact Registry Writer (
roles/artifactregistry.writer
) -
Supprimer des artefacts : Administrateur de dépôt Artifact Registry (
roles/artifactregistry.repoAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Importer des artefacts génériques
Vous pouvez importer des artefacts génériques individuellement par fichier ou par répertoire. Lors de l'importation, un nom de package et un numéro de version doivent être spécifiés. Vous pouvez également spécifier le chemin d'accès dans la structure de fichiers de destination vers lequel les importer. Si aucun chemin de destination n'est spécifié, les artefacts sont importés au niveau racine par défaut.
Pour importer des artefacts génériques dans votre dépôt, exécutez la commande suivante:
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
PROJECT
: ID du projet Google Cloud.
Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.LOCATION
: emplacement régional ou multirégional du dépôt.REPOSITORY
: nom du dépôt dans lequel l'artefact est stocké.SOURCE
: emplacement et nom du fichier que vous importez.PACKAGE
: nom du package du fichier que vous importez.VERSION
: version du fichier que vous importez.Exécutez la commande suivante:
Linux, macOS ou Cloud Shell
gcloud artifacts generic upload \ --projectPROJECT \ --source=SOURCE \ --package=PACKAGE \ --version=VERSION \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts generic upload ` --projectPROJECT ` --source=SOURCE ` --package=PACKAGE ` --version=VERSION ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts generic upload ^ --projectPROJECT ^ --source=SOURCE ^ --package=PACKAGE ^ --version=VERSION ^ --location=LOCATION ^ --repository=REPOSITORY
--destination-path=PATH
pour importer les données dans un dossier spécifié du package et de la version. Cela créera également des dossiers qui n'existent pas.--source-directory=SOURCE_DIR
pour remplacer l'option--source
et importer un répertoire au lieu d'un seul fichier.--skip-existing
lorsque vous utilisez l'option--source-directory
pour ignorer des fichiers déjà existants. Sinon, la commande échouera si vous tentez d'importer un fichier qui existe déjà.
API
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT est l'ID du projet Google Cloud. Si l'ID du projet contient le signe deux-points (
:
), consultez la section Projets à l'échelle du domaine. - LOCATION est l'emplacement régional ou multirégional du dépôt.
- REPOSITORY correspond au nom du dépôt dans lequel l'artefact est stocké.
- SOURCE correspond à l'emplacement et au nom du fichier que vous importez.
- PACKAGE est le nom de package du fichier que vous importez.
- VERSION correspond à la version du fichier que vous importez.
- NAME est le nouveau nom du fichier dans le dépôt.
Méthode HTTP et URL :
POST https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl (Linux, macOS ou Cloud Shell)
Pour envoyer votre requête, exécutez la commande suivante:
curl -v \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F "meta={'filename':'NAME','package_id':'PACKAGE','version_id':'VERSION'};type=application/json" \
-F "blob=@SOURCE" \
https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSTIORY/genericArtifacts:create?alt=json
Lister les artefacts
Vous pouvez répertorier les artefacts d'un dépôt à l'aide de la commande gcloud artifacts files list
.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
PROJECT
: ID du projet Google Cloud. Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.LOCATION
: emplacement régional ou multirégional du dépôt.REPOSITORY
: nom du dépôt dans lequel l'artefact est stocké.
Exécutez la commande suivante:
Linux, macOS ou Cloud Shell
gcloud artifacts files list \ --project=PROJECT \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts files list ` --project=PROJECT ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts files list ^ --project=PROJECT ^ --location=LOCATION ^ --repository=REPOSITORY
FILE: my-package:1.0.0:hello.yaml CREATE_TIME: 2023-03-09T20:55:07 UPDATE_TIME: 2023-03-09T20:55:07 SIZE (MB): 0.000 OWNER: projects/my-project/locations/us-central1/repositories/quickstart-generic-repo/packages/my-package/versions/1.0.0
Il est également possible de trier par version et package en ajoutant l'un des indicateurs suivants ou les deux:
--package=PACKAGE
pour n'afficher que les fichiers d'un package spécifique.--version=VERSION
pour n'afficher que les fichiers d'une version spécifique.
Télécharger des artefacts génériques
Pour télécharger des artefacts génériques depuis votre dépôt, exécutez la commande suivante:
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
DESTINATION
: chemin d'accès au dossier de destination dans votre système de fichiers local. Le dossier de destination doit déjà exister, sans quoi la commande échouera.LOCATION
: emplacement régional ou multirégional du dépôt.REPOSITORY
: nom du dépôt dans lequel l'artefact est stocké.PACKAGE
: package du fichier à télécharger.VERSION
: version du fichier à télécharger.NAME
(facultatif): nom du fichier à télécharger. Sans cette option, la commande télécharge tous les fichiers du package et de la version spécifiés, et crée les répertoires nécessaires dans la destination.
Exécutez la commande suivante:
Linux, macOS ou Cloud Shell
gcloud artifacts generic download \ --destination=DESTINATION \ --location=LOCATION \ --repository=REPOSITORY \ --package=PACKAGE \ --version=VERSION \ --name=NAME
Windows (PowerShell)
gcloud artifacts generic download ` --destination=DESTINATION ` --location=LOCATION ` --repository=REPOSITORY ` --package=PACKAGE ` --version=VERSION ` --name=NAME
Windows (cmd.exe)
gcloud artifacts generic download ^ --destination=DESTINATION ^ --location=LOCATION ^ --repository=REPOSITORY ^ --package=PACKAGE ^ --version=VERSION ^ --name=NAME
API
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
PROJECT
: ID du projet Google Cloud. Si l'ID du projet contient le signe deux-points (:
), consultez la section Projets à l'échelle du domaine.LOCATION
: emplacement régional ou multirégional du dépôt.REPOSITORY
: nom du dépôt dans lequel l'artefact est stocké.DESTINATION
: chemin d'accès au dossier de destination dans votre système de fichiers local. Le dossier de destination doit déjà exister, sinon la commande échouera.FILE
: nom de fichier encodé en URL Pour trouver cette valeur, exécutez la commandegcloud artifacts files list
et copiez la valeur deFILE
. Il doit être converti au format encodé en URL pour cette commande. Par exemple,path/to/file.jar
doit être saisi sous la formepath%2Fto%2Ffile.jar
.
Méthode HTTP et URL :
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
Pour envoyer votre requête, développez l'une des options suivantes :
Le téléchargement devrait commencer immédiatement.Supprimer les artefacts génériques
Pour supprimer des artefacts génériques de votre dépôt, exécutez la commande gcloud artifacts
files delete
. Cette commande n'est disponible que pour les dépôts au format générique.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
FILE
: nom de fichier complet Pour obtenir cette valeur, exécutez la commandegcloud artifacts files list
et copiez la valeur deFILE
.LOCATION
: emplacement régional ou multirégional du dépôt.REPOSITORY
: nom du dépôt dans lequel l'artefact est stocké.
Exécutez la commande suivante:
Linux, macOS ou Cloud Shell
gcloud artifacts files delete \ FILE \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts files delete ` FILE ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts files delete ^ FILE ^ --location=LOCATION ^ --repository=REPOSITORY