Cette page explique comment stocker des artefacts immuables et versionnés qui ne respectent aucun format de package spécifique dans des dépôts au format générique Artifact Registry.
Pour vous familiariser avec le stockage d'artefacts génériques dans Artifact Registry, vous pouvez consulter le guide de démarrage rapide.
Les artefacts génériques sont des fichiers de n'importe quel format, y compris, mais sans s'y limiter, les suivants :
- Fichiers compressés, tels que les fichiers tar et zip
- Fichiers de configuration, tels que les fichiers 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, des gestionnaires de paquets ou d'autres clients tiers.
Avant de commencer
- Créez un dépôt au format générique.
- Vérifiez que vous disposez des autorisations requises pour le dépôt.
- (Facultatif) Configurez des valeurs par défaut pour les commandes Google Cloud CLI.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer des artefacts génériques, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dépôt :
-
Afficher les artefacts :
lecteur Artifact Registry (
roles/artifactregistry.reader) -
Télécharger des artefacts :
lecteur Artifact Registry (
roles/artifactregistry.reader) -
Importer des artefacts dans un dépôt :
rédacteur Artifact Registry (
roles/artifactregistry.writer) -
Supprimer des artefacts :
administrateur de dépôts Artifact Registry (
roles/artifactregistry.repoAdmin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec 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 en multiples par répertoire. Lors de l'importation, vous devez spécifier un nom de package et un numéro de version. Vous pouvez également spécifier le chemin d'accès dans la structure de fichiers de destination pour 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 de votre Google Cloud
projet.
Si l'ID du projet contient le signe deux-points (:), consultez la section
Projets à l'échelle du domaineLOCATION : emplacement régional ou multirégional
du dépôt.REPOSITORY : nom du dépôt où 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 \ --project=PROJECT \ --source=SOURCE \ --package=PACKAGE \ --version=VERSION \ --location=LOCATION \ --repository=REPOSITORY
Windows (PowerShell)
gcloud artifacts generic upload ` --project=PROJECT ` --source=SOURCE ` --package=PACKAGE ` --version=VERSION ` --location=LOCATION ` --repository=REPOSITORY
Windows (cmd.exe)
gcloud artifacts generic upload ^ --project=PROJECT ^ --source=SOURCE ^ --package=PACKAGE ^ --version=VERSION ^ --location=LOCATION ^ --repository=REPOSITORY
--destination-path=PATHpour importer dans un dossier spécifié du package et de la version. Tous les dossiers qui n'existent pas seront également créés.--source-directory=SOURCE_DIRpour remplacer l'option--sourceet importer un répertoire au lieu d'un seul fichier.--skip-existinglorsque vous utilisez l'option--source-directorypour ignorer les fichiers déjà existants. Sinon, la commande échoue lorsque 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 votre Google Cloud
ID du projet. 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 location du dépôt.
- REPOSITORY est le nom du dépôt où l'artefact est stocké.
- SOURCE est l'emplacement et le nom de le fichier que vous importez.
- PACKAGE est le nom du package du fichier que vous importez.
- VERSION est 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/upload/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/REPOSITORY/genericArtifacts:create?alt=json
Lister les artefacts
Console
Vous pouvez afficher les artefacts des dépôts au format générique dans la Google Cloud console.
Ouvrez la page Dépôts dans la Google Cloud console.
Dans la liste des dépôts, sélectionnez le dépôts.
Cliquez sur le nom du package.
Pour afficher les fichiers téléchargeables de toutes les versions du package, cliquez sur l'onglet Fichiers.
Pour afficher les fichiers téléchargeables d'une version spécifique de votre package, cliquez sur le nom de la version, puis sur l'onglet Fichiers.
gcloud
Vous pouvez lister 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 de votre 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 emplacement du dépôt.REPOSITORY: nom du dépôt où 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
Vous pouvez également trier par version et par package en ajoutant une ou les deux options suivantes :
--package=PACKAGEpour n'afficher que les fichiers d'un package spécifique.--version=VERSIONpour 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, sinon la commande échoue. échoue.LOCATION: emplacement régional ou multirégional emplacement du dépôt.REPOSITORY: nom du dépôt où 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 ci-dessous, effectuez les remplacements suivants :
PROJECT: ID de votre 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 emplacement du dépôt.REPOSITORY: nom du dépôt où 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 échoue.FILE: nom de fichier encodé au format URL. Vous pouvez trouver cette valeur en exécutant la commandegcloud artifacts files listet en copiant la valeur deFILE. Vous devez la convertir au format encodé au format URL pour cette commande. Par exemple,path/to/file.jardoit ê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 doit commencer immédiatement.Supprimer des 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. Vous pouvez trouver cette valeur en exécutant lagcloud artifacts files listcommande et en copiant la valeur deFILE.LOCATION: emplacement régional ou multirégional emplacement du dépôt.REPOSITORY: nom du dépôt où 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