Trabajar con otros formatos de artefactos

En esta página se describe cómo almacenar artefactos inmutables con versiones que no se ajusten a ningún formato de paquete específico en 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 los siguientes:

  • Archivos comprimidos, como archivos tar y archivos zip
  • Archivos de configuración, como archivos YAML y TOML
  • Archivos de texto y PDFs
  • Binarios
  • Archivos
  • Archivos multimedia

A diferencia de otros formatos, los artefactos almacenados en repositorios de formato genérico no están pensados para que los usen Docker, los gestores de paquetes u otros clientes de terceros.

Antes de empezar

  1. Cree un repositorio de formatos genéricos.
  2. Verifica que tienes los permisos necesarios para el repositorio.
  3. (Opcional) Configura los valores predeterminados de los comandos de Google Cloud CLI.

Roles obligatorios

Para obtener los permisos que necesitas para gestionar artefactos genéricos, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el repositorio:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Permiso para subir artefactos genéricos.

Puedes subir artefactos genéricos de forma individual por archivo o varios a la vez por directorio. Al subir una aplicación, se deben especificar el nombre del paquete y el número de versión. También puede especificar la ruta de la estructura de archivos de destino a la que quiere subir los archivos. Si no se especifica ninguna 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 los datos de los comandos que se indican a continuación, haz los siguientes cambios:

  • PROJECT: su Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta la sección Proyectos con ámbito de dominio.
  • LOCATION: la ubicación regional o multirregional del repositorio.
  • REPOSITORY: el nombre del repositorio en el que se almacena el artefacto.
  • SOURCE: la ubicación y el nombre del archivo que vas a subir.
  • PACKAGE: el nombre del paquete del archivo que estás subiendo.
  • VERSION: la versión del archivo que está 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
    Hay otras marcas que puedes usar al subir artefactos:
    • --destination-path=PATH para subirlo a una carpeta específica del paquete y la versión. También creará las carpetas que no existan.
    • --source-directory=SOURCE_DIR para sustituir la marca --source y subir un directorio en lugar de un solo archivo.
    • --skip-existing cuando se usa la marca --source-directory para omitir archivos que ya existen. De lo contrario, el comando fallará al intentar subir un archivo que ya exista.

    API

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT es tu Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta la sección Proyectos con ámbito de dominio.
    • LOCATION es la ubicación regional o multirregional del repositorio.
    • REPOSITORY es el nombre del repositorio en el que se almacena el artefacto.
    • SOURCE es la ubicación y el nombre del archivo que estás subiendo.
    • PACKAGE es el nombre del paquete del archivo que está subiendo.
    • VERSION es la versión del archivo que estás subiendo.
    • NAME es el nuevo nombre 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 tu 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
    

    Mostrar artefactos

    consola

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

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

      Abre 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, haga clic en la pestaña Archivos.

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

    gcloud

    Puedes enumerar los artefactos de un repositorio con el comando gcloud artifacts files list.

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    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 se puede ordenar por versión y paquete añadiendo una o ambas de las siguientes marcas:

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

    Descargar artefactos genéricos

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

    gcloud

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • DESTINATION: la ruta a la carpeta de destino en tu sistema de archivos local. La carpeta de destino ya debe existir o el comando fallará.
    • LOCATION: la ubicación regional o multirregional del repositorio.
    • REPOSITORY: el nombre del repositorio en el que se almacena el artefacto.
    • PACKAGE: el paquete del archivo que se va a descargar.
    • VERSION: la versión del archivo que se va a descargar.
    • NAME (opcional): el nombre del archivo que se va a descargar. Si no se incluye esta marca, el comando descargará todos los archivos del paquete y la versión especificados, así como 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 los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT: su Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.
    • LOCATION: la ubicación regional o multirregional del repositorio.
    • REPOSITORY: el nombre del repositorio donde se almacena el artefacto.
    • DESTINATION: la ruta a la carpeta de destino en tu sistema de archivos local. La carpeta de destino ya debe existir o el comando fallará.
    • FILE: nombre de archivo codificado como URL. Para encontrar este valor, ejecuta el comando gcloud artifacts files list y copia el valor de FILE. Para usar este comando, debe convertirse al formato de codificación URL. Por ejemplo, path/to/file.jar debe introducirse 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, despliega una de estas opciones:

    La descarga debería empezar de inmediato.

    Eliminar artefactos genéricos

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

    Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:

    • FILE: el nombre de archivo completo. Para encontrar este valor, ejecuta el comando gcloud artifacts files list y copia el valor de FILE.
    • LOCATION: la ubicación regional o multirregional del repositorio.
    • REPOSITORY: el nombre del repositorio en el que 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

    Siguientes pasos