Cómo trabajar con otros formatos de artefactos

En esta página, se describe cómo almacenar artefactos inmutables con control de versiones que no se adhieren a ningún formato de paquete específico en los repositorios de formato genérico de Artifact Registry.

Para familiarizarte con el almacenamiento de artefactos genéricos en Artifact Registry, puedes probar la guía de inicio rápido.

Los artefactos genéricos son archivos de cualquier formato, incluidos, entre otros, los siguientes:

  • Archivos comprimidos, como archivos tar y zip
  • Archivos de configuración, como archivos YAML y TOML
  • Archivos de texto y PDF
  • Objetos binarios
  • Archivos
  • Archivos multimedia

A diferencia de otros formatos, los artefactos almacenados en repositorios de formato genérico no están destinados a ser utilizados por Docker, administradores de paquetes ni otros clientes externos.

Antes de comenzar

  1. Crea un repositorio de formato genérico.
  2. Verifica si cuentas con los permisos necesarios para el en un repositorio de confianza.
  3. (Opcional) Establece los valores predeterminados para los comandos de Google Cloud CLI.

Roles obligatorios

Para obtener los permisos que necesitas para administrar artefactos genéricos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Sube artefactos genéricos

Puedes subir artefactos genéricos de forma individual por archivo o por directorio. Cuando subas el paquete, debes especificar un nombre y un número de versión. También puedes especificar la ruta de acceso en la estructura de archivos de destino a la que subirlos. Si no se especifica una ruta de destino, los artefactos se suben al nivel raíz de forma predeterminada.

Para subir artefactos genéricos a tu repositorio, ejecuta el siguiente comando:

gcloud

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • PROJECT: tu Google Cloud ID del proyecto: Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • LOCATION: Es la región o multirregional. location del repositorio.
  • REPOSITORY: Es el nombre del repositorio en el que el se almacena el artefacto.
  • SOURCE: La ubicación y el nombre del archivo que subes.
  • PACKAGE: Es el nombre del paquete del archivo que deseas. la carga de datos.
  • VERSION: Es la versión del archivo que estás subiendo.
  • Ejecuta el siguiente comando:

    Linux, macOS o 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
    Existen marcas adicionales que puedes usar cuando subes artefactos:
    • --destination-path=PATH para subirlo a una carpeta especificada dentro del paquete y la versión. También se crearán las carpetas que no existan.
    • --source-directory=SOURCE_DIR para reemplazar --source marcar y subir un directorio en lugar de un solo archivo.
    • --skip-existing cuando se usa la marca --source-directory para omitir los archivos existentes De lo contrario, el comando fallará cuando intentes subir un archivo que ya existe.

    API

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT es tu cuenta de Google Cloud ID del proyecto: Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio
    • LOCATION es la región o La ubicación multirregional del repositorio.
    • REPOSITORY es el nombre del en el que se almacena el artefacto.
    • SOURCE es la ubicación y el nombre del archivo que subes.
    • PACKAGE es el nombre del paquete de que estás subiendo.
    • VERSION es la versión del archivo que están subiendo.
    • NAME es el nombre nuevo del archivo en el repositorio.

    Método HTTP y URL:

      POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
    

    curl (Linux, macOS o Cloud Shell)

    Para enviar la solicitud, ejecuta el siguiente comando:

      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
    

    Cómo enumerar artefactos

    Console

    Puedes ver los artefactos de los repositorios de formato genérico en la consola de Google Cloud.

    1. Abre la página Repositorios en la consola de Google Cloud.

      Abrir la página Repositorios

    2. En la lista de repositorios, selecciona el repositorio.

    3. Haz clic en el nombre del paquete.

    4. Para ver los archivos descargables de todas las versiones del paquete, haz clic en la pestaña Files.

    5. Para ver los archivos descargables de una versión específica del paquete, haz clic en el nombre de la versión y, luego, haz clic en la pestaña Archivos.

    gcloud

    Puedes enumerar artefactos en un repositorio con el gcloud artifacts files list. .

    Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

    • PROJECT: tu Google Cloud ID del proyecto: Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
    • LOCATION: Es la región o multirregional. location del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que el se almacena el artefacto.

    Ejecuta el siguiente comando:

    Linux, macOS o 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 respuesta incluye los detalles del archivo en el formato 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
    

    También es posible ordenar por versión y paquete si agregas una o ambas de las siguientes marcas:

    • --package=PACKAGE para mostrar solo los archivos de un .
    • --version=VERSION para mostrar solo los archivos de una versión específica.

    Descarga artefactos genéricos

    Para descargar artefactos genéricos de tu repositorio, ejecuta el siguiente comando:

    gcloud

    Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

    • DESTINATION: Es la ruta de acceso a la carpeta de destino. en tu sistema de archivos local. La carpeta de destino ya debe existir o el comando fallan.
    • LOCATION: Es la ubicación regional o multirregional del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que el se almacena el artefacto.
    • PACKAGE: Es el paquete del archivo que se descargará.
    • VERSION: Es la versión del archivo que se descargará.
    • NAME (opcional): Es el nombre del archivo que se descargará. Sin esta marca, el comando descargará todos los archivos del paquete y la versión especificados, así como creará los directorios necesarios en el destino.

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT: El ID del proyecto de Google Cloud. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
    • LOCATION: Es la región o multirregional. location del repositorio.
    • REPOSITORY: Es el nombre del repositorio. en la que se almacena el artefacto.
    • DESTINATION: Es la ruta de acceso a la carpeta de destino en tu sistema de archivos local. La carpeta de destino ya debe existir o tu comando fallará.
    • FILE: Es el nombre de archivo codificado en formato URL. Para encontrar este valor, ejecuta el comando gcloud artifacts files list y copia el valor de FILE. Para este comando, se debe convertir al formato de codificación de URL; por ejemplo, path/to/file.jar se debe ingresar como path%2Fto%2Ffile.jar.

    Método HTTP y URL:

    GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media

    Para enviar tu solicitud, expande una de estas opciones:

    Debería comenzar la descarga de inmediato.

    Cómo borrar artefactos genéricos

    Para borrar artefactos genéricos de tu repositorio, ejecuta el comando gcloud artifacts files delete. Este comando solo está disponible para repositorios de formato genérico.

    Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

    • FILE: Es el nombre del archivo completo. Puedes encontrar este valor Ejecuta el comando gcloud artifacts files list y copia el valor de FILE.
    • LOCATION: Es la región o multirregional. location del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que el se almacena el artefacto.

    Ejecuta el siguiente comando:

    Linux, macOS o 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

    ¿Qué sigue?