Travailler avec d'autres formats d'artefacts

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 de 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 les fichiers ZIP
  • Fichiers de configuration, tels que les fichiers YAML et TOML
  • Fichiers texte et PDF
  • Binaires
  • Archives
  • Fichiers multimédias

Contrairement aux autres formats, les artefacts stockés dans des dépôts de formats génériques ne sont pas destinés à être utilisés par Docker, les gestionnaires de paquets ni d'autres clients tiers.

Avant de commencer

  1. Créez un dépôt de formats génériques.
  2. Vérifiez que vous disposez des autorisations requises pour le dépôt.
  3. (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 les artefacts génériques, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dépôt:

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

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 de manière groupée 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 vers laquelle 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 projet Google Cloud. Si l'ID de votre projet contient un 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 \
        --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
    Vous pouvez utiliser d'autres indicateurs lorsque vous importez des artefacts :
    • --destination-path=PATH pour importer dans un dossier spécifié dans le package et la version. Il crée également les dossiers qui n'existent pas.
    • --source-directory=SOURCE_DIR pour remplacer l'indicateur --source et importer un répertoire au lieu d'un seul fichier.
    • --skip-existing lorsque vous utilisez l'indicateur --source-directory pour ignorer les fichiers existants. Sinon, la commande échouera lorsque vous tenterez 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 de projet Google Cloud. Si l'ID de votre projet contient un deux-points (:), consultez la section Projets à l'échelle du domaine.
    • LOCATION est l'emplacement régional ou multirégional du dépôt.
    • REPOSITORY est le nom du dépôt où l'artefact est stocké.
    • SOURCE correspond à l'emplacement et au nom du fichier que vous importez.
    • PACKAGE correspond au nom du 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/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/REPOSTIORY/genericArtifacts:create?alt=json
    

    Répertorier les artefacts

    Console

    Vous pouvez afficher les artefacts des dépôts de formats génériques dans la consoleGoogle Cloud .

    1. Ouvrez la page Dépôts dans la console Google Cloud .

      Ouvrir la page "Dépôts"

    2. Dans la liste des dépôts, sélectionnez le dépôt.

    3. Cliquez sur le nom du package.

    4. Pour afficher les fichiers téléchargeables pour toutes les versions du package, cliquez sur l'onglet Fichiers.

    5. 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 :

    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
    La réponse inclut les détails du fichier au format PACKAGE:VERSION:NAME.
    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 l'une ou les deux options suivantes:

    • --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 à partir de 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 é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 cet indicateur, la commande télécharge tous les fichiers du package et de la version spécifiés, ainsi que les répertoires nécessaires à 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 de votre projet contient un 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é au format URL. Pour trouver cette valeur, exécutez la commande gcloud artifacts files list et copiez la valeur de FILE. Pour cette commande, il doit être converti au format encodé en URL. Par exemple, path/to/file.jar doit être saisi sous la forme path%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 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 de formats génériques.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • FILE: nom complet du fichier. Pour trouver cette valeur, exécutez la commande gcloud artifacts files list et copiez la valeur de FILE.
    • 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

    Étape suivante