Fazer upload e download de objetos de armazenamento em projetos

Nesta página, mostramos como fazer upload e download de objetos para e de buckets de armazenamento isolados do Google Distributed Cloud (GDC, na sigla em inglês).

Antes de começar

Os buckets de armazenamento são recursos com escopo para um projeto específico. O projeto funciona como um contêiner, agrupando seus buckets e permitindo o gerenciamento deles pelo servidor da API Management. Antes de executar as operações nesta página, crie um projeto ou selecione um em que você tenha permissões suficientes.

Papéis do IAM obrigatórios

Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis no namespace do projeto:

  • Administrador de buckets do projeto (project-bucket-admin): cria, atualiza e exclui buckets de armazenamento.
  • Leitor de objetos de buckets do projeto (project-bucket-object-viewer): visualiza e verifica detalhes de buckets e objetos de armazenamento.

Para mais informações, consulte Conceder acesso a buckets.

Preparar o ambiente

Para executar comandos no servidor da API Management ou no servidor da API global, faça o seguinte:

  1. Faça login e gere o arquivo kubeconfig para o servidor da API Management zonal, se você não tiver um.
  2. Para buckets de duas zonas, faça o seguinte:
    • Verifique com o operador de infraestrutura (IO, na sigla em inglês) se o recurso personalizado BucketLocationConfig foi criado para as zonas pareadas.
    • Gere o arquivo kubeconfig para o servidor da API global.

Diretrizes de nomenclatura de objetos

Use as seguintes diretrizes para nomear objetos:

  • Use caracteres UTF-8 ao nomear objetos.
  • Tenha entre 1 e 55 caracteres.
  • Não inclua informações de identificação pessoal (PII, na sigla em inglês).

Fazer upload de objetos para buckets de armazenamento

Console

  1. No menu de navegação, clique em Object Storage.
  2. Clique no nome do bucket em que você quer fazer upload do objeto.
  3. Opcional: se você quiser criar uma pasta para armazenar o objeto, clique em Criar pasta > digite um nome para a pasta > clique em Criar.
  4. Clique em Fazer upload de arquivo diretamente ou navegue até a pasta que você acabou de criar e clique em Fazer upload de arquivo.
  5. Selecione o arquivo desejado e clique em Abrir.
  6. Aguarde a mensagem de confirmação de que o upload foi concluído.

gdcloud

Para fazer upload de um objeto, execute os seguintes comandos:

gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME
gdcloud storage mv s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME

Os comandos a seguir exigem o FULLY_QUALIFIED_BUCKET_NAME. Use o comando GET ou DESCRIBE na seção Visualizar configuração do bucket para receber o nome totalmente qualificado do bucket.

O comando a seguir faz o upload de todos os arquivos de texto do diretório local para um bucket:

gdcloud storage cp *.txt s3://FULLY_QUALIFIED_BUCKET_NAME

O comando a seguir faz o upload de vários arquivos do diretório local para um bucket:

gdcloud storage cp abc1.txt abc2.txt s3://FULLY_QUALIFIED_BUCKET_NAME

Para fazer upload de uma pasta para um bucket, use a opção --recursive para copiar uma árvore de diretórios inteira. O comando a seguir faz o upload da árvore de diretórios dir:

gdcloud storage cp DIRECTORY_NAME s3://FULLY_QUALIFIED_BUCKET_NAME --recursive

Faça uploads de várias partes para objetos grandes ou use uploads de várias partes automaticamente quando tiver um arquivo maior que 15 MB para fazer upload. Nesse caso, o arquivo é dividido em várias partes, com cada parte de 15 MB. A última parte é menor. Cada parte é enviada separadamente e reconstruída no destino quando a transferência é concluída.

Se o upload de uma parte falhar, você poderá reiniciar o upload sem afetar nenhuma das outras partes já enviadas.

Há duas opções relacionadas a uploads de várias partes:

  • --disable-multipart: desativa uploads de várias partes para todos os arquivos.
  • --multipart-chunk-size-mb=SIZE: define o tamanho de cada parte de um upload de várias partes.

Arquivos maiores que SIZE são enviados automaticamente como várias partes multithread. Arquivos menores são enviados usando o método tradicional. SIZE está em megabytes. O tamanho padrão do bloco é 15 MB. O tamanho mínimo permitido do bloco é 5 MB e o máximo é 5 GB.

Fazer download de objetos de buckets de armazenamento

Console

  1. No menu de navegação, clique em Object Storage.
  2. Clique no nome do bucket que contém os objetos.
  3. Marque a caixa de seleção ao lado do nome do objeto para fazer o download.
  4. Clique em Fazer download.

gdcloud

Para receber objetos do bucket:

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/OBJECT LOCAL_FILE_TO_SAVE

Para fazer o download de todos os arquivos de texto de um bucket para o diretório atual:

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/*.txt .

Para fazer o download do arquivo de texto abc.txt de um bucket para o diretório atual:

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt .

Para fazer o download de uma versão mais antiga do arquivo, liste todas as versões do arquivo primeiro:

gdcloud storage ls s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt --all-versions

Exemplo de saída:

s3://my-bucket/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND
s3://my-bucket/abc.txt#ODgzNEYzQ0MtMzEzRS0xMUVFLTk2NEItMjI1MTAwQkJENjND
s3://my-bucket/abc.txt#ODNCNDEzNzgtMzEzRS0xMUVFLTlDOUMtQzRDOTAwQjg3RTg3

Em seguida, faça o download de uma versão específica do arquivo de texto abc.txt do bucket para o diretório atual:

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND .

Usar AEADKey personalizado

Para maior personalização, você pode criar sua própria AEADKey e usá-la diretamente ao criptografar objetos no bucket. Isso oferece controle total sobre a chave de criptografia, ignorando a padrão. Siga as etapas em Criar uma chave para criar uma nova AEADKey e verifique se ela está no mesmo Namespace do bucket que você pretende usar. Em seguida, ao enviar a solicitação, verifique se o HEADER está configurado com x-amz-server-side-encryption: SSE-KMS e x-amz-server-side-encryption-aws-kms-key-id: NAMESPACE_NAME/AEADKey_NAME