Cómo trabajar con otros formatos de artefactos

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

Puedes probar la quickstart para familiarizarte con el almacenamiento de artefactos genéricos en Artifact Registry.

Los artefactos genéricos son archivos de cualquier formato, incluidos, sin limitaciones, los siguientes:

  • Archivos comprimidos, como archivos tar y ZIP
  • Archivos de configuración, como 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 que los usen Docker, los administradores de paquetes ni otros clientes de terceros.

Antes de comenzar

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

Funciones obligatorias

Si quieres 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:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

Sube artefactos genéricos

Puedes subir artefactos genéricos de forma individual por archivo o en múltiplos por directorio. Cuando se sube, se debe especificar un nombre de paquete 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 se subirán. 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, haz los siguientes reemplazos:

  • PROJECT: Es 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 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 deseas subir.
  • PACKAGE: Es el nombre del paquete del archivo que deseas subir.
  • VERSION: Es la versión del archivo que deseas subir.
  • Ejecuta el siguiente comando:

    Linux, macOS o 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
    
    Hay marcas adicionales que puedes usar cuando subes artefactos:
    • --destination-path=PATH para subirlos a una carpeta específica dentro del paquete y la versión. También se crearán las carpetas que no existen.
    • --source-directory=SOURCE_DIR para reemplazar la marca --source 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 se intente 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 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 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 deseas subir.
    • PACKAGE es el nombre del paquete del archivo que deseas subir.
    • VERSION es la versión del archivo que deseas subir.
    • NAME es el nombre nuevo del archivo en el repositorio.

    Método HTTP y URL:

      POST https://artifactregistry.googleapis.com/download/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 lista de artefactos

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

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

    • PROJECT: Es 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 ubicación regional o multirregional del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que 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 de las siguientes marcas o ambas:

    • --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.

    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, haz los siguientes reemplazos:

    • DESTINATION: Es la ruta a la carpeta de destino en el sistema de archivos local. La carpeta de destino ya debe existir o el comando fallará.
    • LOCATION: Es la ubicación regional o multirregional del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que 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 y 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: Es 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 ubicación regional o multirregional del repositorio.
    • REPOSITORY: Es el nombre del repositorio en el que se almacena el artefacto.
    • DESTINATION: Es la ruta a la carpeta de destino en el sistema de archivos local. La carpeta de destino ya debe existir o el comando fallará.
    • FILE: Es el nombre de archivo con codificación URL. Para encontrar este valor, ejecuta el comando gcloud artifacts files list y copia el valor de FILE. Debe convertirse al formato de codificación URL para este comando. Por ejemplo, path/to/file.jar debería ingresarse 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ías ver que la descarga comienza de inmediato.

    Borra artefactos genéricos

    Para borrar 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 cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

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

    ¿Qué sigue?