Copiar um objeto para um bucket de diretório - Amazon Simple Storage Service

Copiar um objeto para um bucket de diretório

A operação de cópia cria uma cópia de um objeto que já está armazenado no Amazon S3. Você pode copiar objetos entre buckets de diretório e buckets de uso geral. Você também pode copiar objetos dentro de um bucket e entre buckets do mesmo tipo, por exemplo, de um bucket de diretório para outro bucket de diretório.

Você pode criar uma cópia do objeto de até 5 GB em uma única operação atômica. Contudo, para copiar um objeto maior do que 5 GB, você deve usar as operações de API de upload multiparte. Para ter mais informações, consulte Usar uploads multiparte com buckets de diretório.

Permissões

Para copiar objetos, você deve ter as seguintes permissões:

  • Para copiar objetos de um bucket de diretório para outro bucket de diretório, você precisa ter a permissão s3express:CreateSession.

  • Para copiar objetos de buckets de diretório para buckets de uso geral, você precisa ter a permissão s3express:CreateSession e a permissão s3:PutObject para gravar a cópia do objeto no bucket de destino.

  • Para copiar objetos de buckets de uso geral para buckets de diretório, você precisa ter a permissão s3express:CreateSession e a permissão s3:GetObject para ler o objeto de origem que está sendo copiado.

    Para obter mais informações, consulte CopyObject na Referência da API do Amazon Simple Storage Service.

Criptografia

O Amazon S3 criptografa automaticamente todos os novos objetos que são carregados em um bucket do S3. A configuração de criptografia padrão de um bucket do S3 está sempre habilitada e, no mínimo, definida como criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).

Buckets de diretório só são compatíveis com SSE-S3. Para buckets de uso geral, você pode usar SSE-S3 (padrão), criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), criptografia de camada dupla do lado do servidor com chaves do AWS KMS (DSSE-KMS) ou criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C).

Se você fizer uma solicitação de cópia que defina os parâmetros SSE-C, SSE-KMS ou DSSE-KMS em um bucket de diretório como origem ou destino, a resposta retornará um erro.

Tags

Os buckets de diretório não oferecem suporte a etiquetas. Se você copiar um objeto que tenha etiquetas de um bucket de uso geral para um bucket de diretório, receberá uma resposta HTTP 501 (Not Implemented). Para obter mais informações, consulte CopyObject na Referência da API do Amazon Simple Storage Service.

ETags

As etiquetas de entidade (ETags) para a classe S3 Express One Zone são strings alfanuméricas aleatórias e não somas de verificação MD5. Para ajudar a garantir a integridade do objeto, use somas de verificação adicionais.

Somas de verificação adicionais

A classe S3 Express One Zone oferece a opção de escolher o algoritmo de soma de verificação usado para validar os dados durante o upload ou o download. Você pode selecionar um dos seguintes algoritmos de verificação de integridade de dados de hash seguro (SHA) ou de verificação de redundância cíclica (CRC): CRC32, CRC32C, SHA-1 e SHA-256. As somas de verificação baseadas em MD5 não são compatíveis com a classe de armazenamento S3 Express One Zone.

Para ter mais informações, consulte Práticas recomendadas adicionais de soma de verificação do S3.

Atributos compatíveis

Para obter mais informações sobre quais recursos do Amazon S3 são compatíveis com a classe S3 Express One Zone, consulte O que diferencia a classe S3 Express One Zone?.

Como copiar um objeto de um bucket de uso geral ou de diretório para um bucket de diretório
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets.

  3. Escolha o bucket do qual deseja copiar objetos:

    • Para copiar de um bucket de uso geral, escolha a guia Buckets de uso geral.

    • Para copiar de um bucket de diretório, escolha a guia Buckets de diretórios.

  4. Escolha o bucket de uso geral ou de diretório que contém os objetos que você deseja copiar.

  5. Escolha a guia Objetos. Na página Objetos, marque a caixa de seleção à esquerda dos nomes dos objetos que você deseja copiar.

  6. No menu Actions (Ações), escolha Copy (Copiar).

    A página Copiar é exibida.

  7. Em Destino, escolha Bucket de diretório como tipo de destino. Para especificar o caminho de destino, escolha Procurar no S3, navegue até o destino e selecione o botão de opções à esquerda do destino. Escolha Choose destination (Escolher destino) no canto inferior direito.

    Outra alternativa é inserir o caminho de destino.

  8. Em Checksums, escolha se deseja copiar os objetos com suas funções de soma de verificação existentes ou substituí-las por funções novas. Ao carregar os objetos, você teve a opção de especificar o algoritmo de soma de verificação usado para verificar a integridade dos dados. Ao copiar o objeto, você tem a opção de escolher uma nova função. Se você não tiver especificado uma soma de verificação adicional, poderá usar a seção Checksums para adicionar uma.

    nota

    Mesmo se optar por usar a mesma função de soma de verificação, o valor dela poderá mudar se o objeto tiver mais de 16 MB. O valor da soma de verificação pode mudar devido à forma como as somas de verificação são calculadas para carregamentos fracionados. Para obter mais informações sobre como a soma de verificação pode mudar ao copiar esse objeto, consulte Usar somas de verificação de nível parcial para carregamentos fracionados.

    Para alterar a função de soma de verificação, escolha Replace with a new checksum function (Substituir por uma nova função de soma de verificação). Escolha a nova função de soma de verificação na lista suspensa. Quando o objeto é copiado, a nova soma de verificação é calculada e armazenada usando o algoritmo especificado.

  9. Escolha Copy (Copiar) no canto inferior direito. O Amazon S3 copia o objeto no destino.

Como copiar um objeto de um bucket de diretório para um bucket de uso geral
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets.

  3. Escolha a guia Buckets de diretórios.

  4. Selecione o bucket de diretório que contém os objetos que você deseja copiar.

  5. Escolha a guia Objetos. Na página Objetos, marque a caixa de seleção à esquerda dos nomes dos objetos que você deseja copiar.

  6. No menu Actions (Ações), escolha Copy (Copiar).

  7. Em Destino, escolha Bucket de uso geral como tipo de destino. Para especificar o caminho de destino, escolha Procurar no S3, navegue até o destino e selecione o botão de opções à esquerda do destino. Escolha Choose destination (Escolher destino) no canto inferior direito.

    Outra alternativa é inserir o caminho de destino.

  8. Em Checksums, escolha se deseja copiar os objetos com suas funções de soma de verificação existentes ou substituí-las por funções novas. Ao carregar os objetos, você teve a opção de especificar o algoritmo de soma de verificação usado para verificar a integridade dos dados. Ao copiar o objeto, você tem a opção de escolher uma nova função. Se você não tiver especificado uma soma de verificação adicional, poderá usar a seção Checksums para adicionar uma.

    nota

    Mesmo se optar por usar a mesma função de soma de verificação, o valor dela poderá mudar se o objeto tiver mais de 16 MB. O valor da soma de verificação pode mudar devido à forma como as somas de verificação são calculadas para carregamentos fracionados. Para obter mais informações sobre como a soma de verificação pode mudar ao copiar esse objeto, consulte Usar somas de verificação de nível parcial para carregamentos fracionados.

    Para alterar a função de soma de verificação, escolha Replace with a new checksum function (Substituir por uma nova função de soma de verificação). Escolha a nova função de soma de verificação na lista suspensa. Quando o objeto é copiado, a nova soma de verificação é calculada e armazenada usando o algoritmo especificado.

  9. Escolha Copy (Copiar) no canto inferior direito. O Amazon S3 copia o objeto no destino.

SDK for Java 2.x
public static void copyBucketObject (S3Client s3, String sourceBucket, String objectKey, String targetBucket) { CopyObjectRequest copyReq = CopyObjectRequest.builder() .sourceBucket(sourceBucket) .sourceKey(objectKey) .destinationBucket(targetBucket) .destinationKey(objectKey) .build(); String temp = ""; try { CopyObjectResponse copyRes = s3.copyObject(copyReq); System.out.println("Successfully copied " + objectKey +" from bucket " + sourceBucket +" into bucket "+targetBucket); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

O exemplo de comando copy-object a seguir mostra como é possível usar a AWS CLI para copiar um objeto de um bucket para outro. Você pode copiar objetos entre tipos de bucket. Para executar esse comando, substitua os espaços reservados de entrada por suas próprias informações.

aws s3api copy-object --copy-source bucket SOURCE_BUCKET/SOURCE_KEY_NAME --key TARGET_KEY_NAME --bucket TARGET_BUCKET_NAME

Para obter mais informações, consulte copy-object na Referência de comandos da AWS CLI.