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
- Cree un repositorio de formatos genéricos.
- Verifica que tienes los permisos necesarios para el repositorio.
- (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:
-
Ver artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Descargar artefactos:
Lector de Artifact Registry (
roles/artifactregistry.reader
) -
Sube artefactos a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer
) -
Eliminar artefactos:
Administrador de repositorios de Artifact Registry (
roles/artifactregistry.repoAdmin
)
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
--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.
Abre la página Repositorios en la consola de Google Cloud .
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, haga 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, 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:
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 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 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 comandogcloud artifacts files list
y copia el valor deFILE
. Para usar este comando, debe convertirse al formato de codificación URL. Por ejemplo,path/to/file.jar
debe introducirse 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, 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 comandogcloud artifacts files list
y copia el valor deFILE
.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