Trabalhe com outros formatos de artefactos

Esta página descreve como armazenar artefactos imutáveis com versões que não cumprem nenhum formato de pacote específico nos repositórios de formato genérico do Artifact Registry.

Para se familiarizar com o armazenamento de artefactos genéricos no Artifact Registry, pode experimentar o início rápido.

Os artefactos genéricos são ficheiros de qualquer formato, incluindo, entre outros, os seguintes:

  • Ficheiros comprimidos, como ficheiros tar e ficheiros zip
  • Ficheiros de configuração, como ficheiros YAML e TOML
  • Ficheiros de texto e PDFs
  • Binários
  • Arquivos
  • Ficheiros multimédia

Ao contrário de outros formatos, os artefactos armazenados em repositórios de formatos genéricos não se destinam a ser usados pelo Docker, gestores de pacotes ou outros clientes de terceiros.

Antes de começar

  1. Crie um repositório de formatos genérico.
  2. Verifique se tem as autorizações necessárias para o repositório.
  3. (Opcional) Configure as predefinições para os comandos da CLI gcloud.

Funções necessárias

Para receber as autorizações de que precisa para gerir artefactos genéricos, peça ao seu administrador para lhe conceder as seguintes funções de IAM no repositório:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Carregue artefactos genéricos

Pode carregar artefactos genéricos individualmente por ficheiro ou em múltiplos por diretório. Quando carregar, tem de especificar um nome do pacote e um número da versão. Também pode especificar o caminho na estrutura de ficheiros de destino para os carregar. Se não for especificado nenhum caminho de destino, os artefactos são carregados para o nível raiz por predefinição.

Para carregar artefactos genéricos para o seu repositório, execute o seguinte comando:

gcloud

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • PROJECT: o seu Google Cloud ID do projeto. Se o ID do projeto contiver dois pontos (:), consulte o artigo Projetos com âmbito de domínio
  • LOCATION: a localização regional ou multirregional do repositório.
  • REPOSITORY: o nome do repositório onde o artefacto está armazenado.
  • SOURCE: a localização e o nome do ficheiro que está a carregar.
  • PACKAGE: o nome do pacote do ficheiro que está a carregar.
  • VERSION: a versão do ficheiro que está a carregar.
  • 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
    Existem flags adicionais que pode usar ao carregar artefactos:
    • --destination-path=PATH para carregar para uma pasta especificada no pacote e na versão. Também cria pastas que não existam.
    • --source-directory=SOURCE_DIR para substituir a flag --source e carregar um diretório em vez de um único ficheiro.
    • --skip-existing quando usar a flag --source-directory para ignorar ficheiros já existentes. Caso contrário, o comando falha quando tenta carregar um ficheiro que já existe.

    API

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT é o seu Google Cloud ID do projeto. Se o ID do projeto contiver dois pontos (:), consulte o artigo Projetos com âmbito de domínio
    • LOCATION é a localização regional ou multirregional do repositório.
    • REPOSITORY é o nome do repositório onde o artefacto está armazenado.
    • SOURCE é a localização e o nome do ficheiro que está a carregar.
    • PACKAGE é o nome do pacote do ficheiro que está a carregar.
    • VERSION é a versão do ficheiro que está a carregar.
    • NAME é o novo nome do ficheiro 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 o seu pedido, 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
    

    Apresentar artefactos

    consola

    Pode ver artefactos para repositórios de formato genérico na Google Cloud consola.

    1. Abra a página Repositórios na Google Cloud consola.

      Abra a página Repositórios

    2. Na lista de repositórios, selecione o repositório.

    3. Clique no nome do pacote.

    4. Para ver os ficheiros transferíveis de todas as versões do pacote, clique no separador Ficheiros.

    5. Para ver ficheiros transferíveis de uma versão específica do pacote, clique no nome da versão e, de seguida, clique no separador Ficheiros.

    gcloud

    Pode listar artefactos num repositório com o comando gcloud artifacts files list.

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    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
    A resposta inclui os detalhes do ficheiro no 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
    

    Também é possível ordenar por versão e pacote adicionando um ou ambos os seguintes indicadores:

    • --package=PACKAGE para mostrar apenas ficheiros de um pacote específico.
    • --version=VERSION para mostrar apenas ficheiros de uma versão específica.

    Transfira artefactos genéricos

    Para transferir artefactos genéricos do seu repositório, execute o seguinte comando:

    gcloud

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • DESTINATION: o caminho para a pasta de destino no seu sistema de ficheiros local. A pasta de destino tem de existir ou o comando vai falhar.
    • LOCATION: a localização regional ou multirregional do repositório.
    • REPOSITORY: o nome do repositório onde o artefacto está armazenado.
    • PACKAGE: o pacote do ficheiro a transferir.
    • VERSION: a versão do ficheiro a transferir.
    • NAME (opcional): o nome do ficheiro a transferir. Sem esta flag, o comando transfere todos os ficheiros para o pacote e a versão especificados, bem como cria 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 qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT: o seu Google Cloud ID do projeto. Se o ID do projeto contiver dois pontos (:), consulte o artigo Projetos com âmbito de domínio.
    • LOCATION: a localização regional ou multirregional do repositório.
    • REPOSITORY: o nome do repositório onde o artefacto está armazenado.
    • DESTINATION: o caminho para a pasta de destino no seu sistema de ficheiros local. A pasta de destino tem de existir ou o comando falha.
    • FILE: o nome do ficheiro codificado por URL. Pode encontrar este valor executando o comando gcloud artifacts files list e copiando o valor de FILE. Tem de ser convertido para o formato codificado por URL para este comando. Por exemplo, path/to/file.jar tem de ser introduzido como path%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 o seu pedido, expanda uma destas opções:

    Deve ver a transferência começar imediatamente.

    Elimine artefactos genéricos

    Para eliminar artefactos genéricos do seu repositório, execute o comando gcloud artifacts files delete. Este comando só está disponível para repositórios de formato genérico.

    Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

    • FILE: o nome completo do ficheiro. Pode encontrar este valor executando o comando gcloud artifacts files list e copiando o valor de FILE.
    • LOCATION: a localização regional ou multirregional do repositório.
    • REPOSITORY: o nome do repositório onde o artefacto está 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

    O que se segue?