Esta página descreve como armazenar artefatos versionados e imutáveis que não aderem a nenhum formato de pacote específico em repositórios de formato genérico do Artifact Registry.
Para se familiarizar com o armazenamento de artefatos genéricos no Artifact Registry, consulte o guia de início rápido.
Artefatos genéricos são arquivos de qualquer formato, incluindo, entre outros:
- Arquivos compactados, como arquivos tar e zip
- Arquivos de configuração, como YAML e TOML
- Arquivos de texto e PDFs
- Binários
- Arquivos
- Arquivos de mídia
Ao contrário de outros formatos, os artefatos armazenados em repositórios de formato genérico não são destinados a serem usados pelo Docker, gerenciadores de pacotes ou outros clientes de terceiros.
Antes de começar
- Crie um repositório de formatos genéricos.
- Verifique se você tem as permissões necessárias para o repositório.
- (Opcional) Configure padrões para comandos da Google Cloud CLI.
Funções exigidas
Para conseguir as permissões necessárias para gerenciar artefatos genéricos, peça ao administrador para conceder a você os seguintes papéis do IAM no repositório:
-
Visualizar artefatos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Fazer o download de artefatos:
Leitor do Artifact Registry (
roles/artifactregistry.reader
) -
Fazer upload de artefatos para um repositório:
Gravador do Artifact Registry (
roles/artifactregistry.writer
) -
Excluir artefatos:
Administrador do repositório do Artifact Registry (
roles/artifactregistry.repoAdmin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Fazer upload de artefatos genéricos
É possível fazer upload de artefatos genéricos individualmente por arquivo ou em vários diretórios. Ao fazer o upload, é necessário especificar o nome do pacote e o número da versão. Também é possível especificar o caminho na estrutura de destino para fazer o upload. Se nenhum caminho de destino for especificado, os artefatos serão enviados para o nível raiz por padrão.
Para fazer upload de artefatos genéricos para o repositório, execute o seguinte comando:
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
PROJECT
: o ID do projeto do Google Cloud.
Caso o ID do projeto contenha dois pontos (:
), consulte
Projetos com escopo de domínio.LOCATION
: o local
regional ou multirregional do repositório.REPOSITORY
: o nome do repositório em que o
artefato é armazenado.SOURCE
: o local e o nome do arquivo que você está
enviando.PACKAGE
: o nome do pacote do arquivo que você está
enviando.VERSION
: a versão do arquivo que você está enviando.Execute o seguinte comando:
Linux, macOS ou 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 fazer upload para uma pasta especificada no pacote e na versão. Ele também vai criar as pastas que não existem.--source-directory=SOURCE_DIR
para substituir a flag--source
e fazer upload de um diretório em vez de um único arquivo.--skip-existing
ao usar a flag--source-directory
para pular arquivos que já existem. Caso contrário, o comando vai falhar ao tentar fazer o upload de um arquivo que já existe.
API
Antes de usar os dados da solicitação, faça as substituições a seguir:
- PROJECT é o ID do projeto do Google Cloud
. Caso o ID do projeto contenha dois pontos (
:
), consulte Projetos com escopo de domínio. - LOCATION é o local regional ou multirregional do repositório.
- REPOSITORY é o nome do repositório em que o artefato está armazenado.
- SOURCE é o local e o nome do arquivo que você está fazendo upload.
- PACKAGE é o nome do pacote do arquivo que você está fazendo upload.
- VERSION é a versão do arquivo que você está enviando.
- NAME é o novo nome do arquivo no repositório.
Método HTTP e URL:
POST https://artifactregistry.googleapis.com/upload/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/genericArtifacts:create?alt=json
curl (Linux, macOS ou Cloud Shell)
Para enviar a solicitação, execute o seguinte 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
Listar artefatos
Console
É possível conferir artefatos de repositórios de formatos genéricos no console do Google Cloud .
Abra a página Repositórios no console Google Cloud .
Na lista de repositórios, selecione o repositório.
Clique no nome do pacote.
Para conferir os arquivos para download de todas as versões do pacote, clique na guia Files.
Para conferir os arquivos para download de uma versão específica do pacote, clique no nome da versão e na guia Files.
gcloud
É possível listar artefatos em um repositório com o comando
gcloud artifacts files list
.
Antes de usar os dados do comando abaixo, faça estas substituições:
PROJECT
: o ID do projeto do Google Cloud. Caso o ID do projeto contenha dois pontos (:
), consulte Projetos com escopo de domínio.LOCATION
: o local regional ou multirregional do repositório.REPOSITORY
: o nome do repositório em que o artefato é armazenado.
Execute o seguinte comando:
Linux, macOS ou 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
Também é possível classificar por versão e pacote adicionando uma ou ambas as seguintes flags:
--package=PACKAGE
para mostrar apenas arquivos de um pacote específico.--version=VERSION
para mostrar apenas arquivos de uma versão específica.
Fazer o download de artefatos genéricos
Para fazer o download de artefatos genéricos do repositório, execute o seguinte comando:
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
DESTINATION
: o caminho para a pasta de destino no sistema de arquivos local. A pasta de destino precisa já existir ou o comando vai falhar.LOCATION
: o local regional ou multirregional do repositório.REPOSITORY
: o nome do repositório em que o artefato é armazenado.PACKAGE
: o pacote do arquivo a ser transferido por download.VERSION
: a versão do arquivo a ser transferido por download.NAME
(opcional): o nome do arquivo a ser transferido por download. Sem essa flag, o comando vai fazer o download de todos os arquivos do pacote e da versão especificados, além de criar os diretórios necessários no destino.
Execute o seguinte comando:
Linux, macOS ou 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 os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT
: o ID do projeto do Google Cloud. Caso o ID do projeto contenha dois pontos (:
), consulte Projetos com escopo de domínio.LOCATION
: o local regional ou multirregional do repositório.REPOSITORY
: o nome do repositório em que o artefato é armazenado.DESTINATION
: o caminho para a pasta de destino no sistema de arquivos local. A pasta de destino precisa já existir ou o comando vai falhar.FILE
: o nome do arquivo codificado por URL. Para encontrar esse valor, execute o comandogcloud artifacts files list
e copie o valor deFILE
. Ele precisa ser convertido para o formato codificado em URL para esse comando. Por exemplo,path/to/file.jar
precisa ser inserido comopath%2Fto%2Ffile.jar
.
Método HTTP e URL:
GET https://artifactregistry.googleapis.com/download/v1/projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/files/FILE:download?alt=media
Para enviar a solicitação, expanda uma destas opções:
O download vai começar imediatamente.Excluir artefatos genéricos
Para excluir artefatos genéricos do repositório, execute o comando gcloud artifacts
files delete
. Esse comando está disponível apenas para repositórios de formato
genérico.
Antes de usar os dados do comando abaixo, faça estas substituições:
FILE
: o nome de arquivo completo. Para encontrar esse valor, execute o comandogcloud artifacts files list
e copie o valor deFILE
.LOCATION
: o local regional ou multirregional do repositório.REPOSITORY
: o nome do repositório em que o artefato é armazenado.
Execute o seguinte comando:
Linux, macOS ou 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