En esta página, se describe cómo almacenar artefactos inmutables y con versiones que no se ajustan 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, entre otros, los siguientes:
- Archivos comprimidos, como archivos tar y archivos zip
- Archivos de configuración, como archivos YAML y TOML
- Archivos de texto y PDFs
- Objetos binarios
- Archivos
- Archivos multimedia
A diferencia de otros formatos, los artefactos almacenados en repositorios de formato genérico no están diseñados para que los usen Docker, los administradores de paquetes ni otros clientes de terceros.
Antes de comenzar
- Crea un repositorio de formato genérico.
- Verifica que tengas los permisos necesarios para el repositorio.
- (Opcional) Configura valores predeterminados para los comandos de la 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:
-
Ver artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader) -
Descargar artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader) -
Subir artefactos a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer) -
Borrar artefactos:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin)
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 a través de roles personalizados o cualquier otro rol predefinido.
Sube artefactos genéricos
Puedes subir artefactos genéricos de forma individual por archivo o en múltiples por directorio. Cuando subas archivos, debes 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 deseas subirlos. Si no se especifica una ruta de acceso 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 dominioLOCATION: 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 \ --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=PATHpara subir a una carpeta especificada dentro del paquete y la versión. También creará las carpetas que no existan.--source-directory=SOURCE_DIRpara reemplazar la marca--sourcey subir un directorio en lugar de un solo archivo.--skip-existingcuando se usa la marca--source-directorypara omitir los archivos que ya existen. De lo contrario, el comando fallará cuando intente subir un archivo que ya existe.
API
Antes de usar cualquiera de los datos de solicitud, realiza los siguientes reemplazos:
- PROJECT es el ID del proyecto 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 de l 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/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/REPOSITORY/genericArtifacts:create?alt=json
Enumera artefactos
Console
Puedes ver artefactos para repositorios de formato genérico en la Google Cloud consola.
Abre la página Repositorios en la Google Cloud consola de.
En la lista de repositorios, selecciona el repositorio.
Haz clic en el nombre del paquete.
Para ver los archivos descargables de todas las versiones del paquete, haz clic en la pestaña Archivos.
Para ver los archivos descargables de una versión específica de tu paquete, haz clic en el nombre de la versión y, luego, en la pestaña Archivos.
gcloud
Puedes enumerar artefactos en un repositorio con el comando 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 del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominioLOCATION: 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
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 agregando una o ambas de las siguientes marcas:
--package=PACKAGEpara mostrar solo los archivos de un paquete específico.--version=VERSIONpara 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 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 deseas descargar.VERSION: Es la versión del archivo que deseas descargar.NAME(opcional): Es el nombre del archivo que deseas descargar. Sin esta marca, el comando descargará todos los archivos del paquete y la versión especificados, adem ás de 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, 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 ubicación regional o multirregional del repositorio.REPOSITORY: Es el nombre del repositorio en el 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 el comando fallará.FILE: Es el nombre de archivo codificado en URL. Para encontrar este valor, ejecuta el comandogcloud artifacts files listy copia el valor deFILE. Se debe convertir al formato codificado en URL para este comando. Por ejemplo,path/to/file.jardebería ingresarse comopath%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 gcloud artifacts
files delete comando. 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 de archivo completo. Para encontrar este valor, ejecuta el comandogcloud artifacts files listy copia el valor deFILE.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