Copiar, mover e renomear objetos
A operação CopyObject
cria uma cópia de um objeto que já está armazenado no Amazon S3.
Você pode criar uma cópia do objeto de até 5 GB em uma única operação atômica. Contudo, para copiar um objeto com mais de 5 GB, você deve usar a AWS CLI ou SDKs da AWS para realizar um carregamento fracionado. Para ter mais informações, consulte Copiar um objeto usando multipart upload.
Usando a operação CopyObject
você pode:
-
Criar cópias adicionais de objetos.
-
Renomear objetos copiando-os e excluindo os originais.
-
Copiar ou mover objetos de um bucket para outro, inclusive entre Regiões da AWS (por exemplo, de
us-west-1
paraeu-west-2
). Ao mover um objeto, o Amazon S3 o copia para o destino especificado e, em seguida, exclui o objeto de origem.nota
A cópia ou movimentação de objetos entre Regiões da AWS gera cobranças de largura de banda. Para obter mais informações, consulte Preços do Amazon S3
. -
Alterar metadados do objeto. Cada objeto do Amazon S3 tem metadados. Esses metadados são um conjunto de pares de nome-valor. Você pode definir metadados de objeto no momento em que carregar um objeto. Depois que você carregá-lo, não poderá modificar os respectivos metadados. A única forma de modificar metadados de objeto é fazer uma cópia do objeto e definir os metadados. Para isso, na operação de cópia, defina o mesmo objeto como origem e destino.
Alguns metadados de objeto são metadados de sistema e outros são definidos pelo usuário. É possível controlar alguns dos metadados do sistema. Por exemplo, é possível controlar a classe de armazenamento e o tipo de criptografia do lado do servidor a ser usado para o objeto. Quando você copia um objeto, os metadados de sistema controlados pelo usuário e os metadados definidos pelo usuário também são copiados. O Amazon S3 redefine os metadados controlados pelo sistema. Por exemplo, quando você copia um objeto, o Amazon S3 redefine a data de criação do objeto copiado. Você não precisa definir nenhum desses valores de metadados controlados pelo sistema na sua solicitação de cópia.
Ao copiar um objeto, você pode decidir atualizar alguns dos valores de metadados. Por exemplo, se o objeto de origem for configurado para usar o armazenamento padrão do S3, você poderá optar por usar o S3 Intelligent-Tiering para a cópia de objeto. Você também pode modificar os valores de metadados definidos pelo usuário presentes no objeto de origem. Se optar por atualizar metadados configuráveis pelo usuário do objeto (definidos pelo sistema ou pelo usuário) durante a cópia, você deverá especificar explicitamente todos os metadados configuráveis pelo usuário presentes no objeto de origem na solicitação, mesmo se estiver apenas alterando um dos valores de metadados.
Para obter mais informações sobre metadados de objeto, consulte Trabalhar com metadados de objeto.
Copiar objetos arquivados e restaurados
Se o objeto de origem estiver arquivado em S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive, será necessário primeiramente restaurar uma cópia temporária antes de copiar o objeto para outro bucket. Para obter informações sobre objetos de arquivo, consulte Trabalhando com objetos arquivados.
No console do Amazon S3, não é possível usar a operação Copiar para objetos restaurados nas classes de armazenamento S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. Para copiar esses objetos restaurados, use a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST do Amazon S3.
Copiar objetos criptografados
O Amazon S3 criptografa automaticamente todos os novos objetos que são copiados para um bucket do S3. Se você não especificar informações de criptografia na solicitação de cópia, a configuração de criptografia do objeto de destino será definida como a configuração de criptografia padrão do bucket de destino. Por padrão, todos os buckets têm um nível básico de configuração de criptografia que usa criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3). Se o bucket de destino tiver uma configuração de criptografia padrão que usa criptografia do lado do servidor com uma chave do AWS Key Management Service (AWS KMS) (SSE-KMS) ou uma chave de criptografia fornecida pelo cliente (SSE-C), o Amazon S3 usará a chave do KMS correspondente ou uma chave fornecida pelo cliente para criptografar a cópia do objeto de destino.
Ao copiar um objeto, se quiser usar um tipo diferente de configuração de criptografia para o objeto de destino, você poderá solicitar que o Amazon S3 criptografe o objeto de destino com uma chave do KMS, uma chave gerenciada pelo Amazon S3 ou uma chave fornecida pelo cliente. Se a configuração de criptografia na solicitação for diferente da configuração de criptografia padrão do bucket de destino, a configuração de criptografia na solicitação terá precedência. Se o objeto de origem da cópia for criptografado com SSE-C, você deverá fornecer as informações de criptografia necessárias na solicitação, de maneira que o Amazon S3 possa descriptografar o objeto para a cópia. Para ter mais informações, consulte Proteger dados com criptografia.
Usar somas de verificação ao copiar objetos
Ao copiar objetos, você pode optar por usar um algoritmo de soma de verificação diferente para eles. Se optar por usar o mesmo algoritmo ou um novo, o Amazon S3 calculará um novo valor de soma de verificação depois que o objeto for copiado. O Amazon S3 não copia diretamente o valor da soma de verificação. O valor da soma de verificação de objetos que foram carregados usando carregamentos fracionados pode ser alterado. Para obter mais informações sobre como essa soma de verificação é calculada, consulte Usar somas de verificação de nível parcial para carregamentos fracionados.
Copiar vários objetos em uma única solicitação
Para copiar mais de um objeto do Amazon S3 com uma única solicitação, você pode usar Operações em Lote do Amazon S3. Você fornece às operações em lote do S3 uma lista de objetos nos quais operar. O S3 Batch Operations chama a respectiva operação de API para executar a operação especificada. Um único trabalho de operações em lote pode realizar a operação especificada em bilhões de objetos contendo exabytes de dados.
O recurso S3 Batch Operations rastreia o progresso, envia notificações e armazena um relatório de conclusão detalhado de todas as ações, fornecendo uma experiência totalmente gerenciada, auditável e sem servidor. É possível usar as operações em lote do S3 por meio do console do Amazon S3, da AWS CLI, de AWS SDKs ou da API REST. Para ter mais informações, consulte Conceitos básicos sobre operações em lote do S3.
Copiar objetos para buckets de diretório
Para obter informações sobre como copiar um objeto em um bucket de diretório, consulte Copiar um objeto para um bucket de diretório. Para obter informações sobre o uso da classe de armazenamento Amazon S3 Express One Zone com buckets de diretório, consulte Buckets de diretório e S3 Express One Zone e Visão geral dos buckets de diretório.
Para copiar um objeto
Para copiar um objeto, use os métodos a seguir.
nota
As restrições e limitações ao copiar um objeto com o console são as seguintes:
-
Você pode copiar um objeto se ele tiver menos de 5 GB. Se o objeto tiver mais de 5 GB, você deve usar a AWS CLI ou SDKs da AWS para copiá-lo.
-
Para obter uma lista das permissões adicionais necessárias para copiar objetos, consulte Permissões obrigatórias para operações de API do Amazon S3. Para ver exemplos das políticas que concedem essas permissões, consulte Exemplos de políticas baseadas em identidade para o Amazon S3.
-
A ação
Copy
se aplica a todos os objetos nas pastas especificadas (prefixos). Os objetos adicionados a essas pastas enquanto a ação estiver em andamento também poderão ser afetados. -
O console do Amazon S3 não permite a cópia entre regiões de objetos criptografados com SSE-KMS. Para copiar objetos criptografados com SSE-KMS, use a AWS CLI, o SDK da AWS ou a API REST do Amazon S3.
-
Objetos criptografados com chaves de criptografia fornecidas pelo cliente (SSE-C) não podem ser copiados usando o console do S3. Para copiar objetos criptografados com SSE-C, use a AWS CLI, o SDK da AWS ou a API REST do Amazon S3.
-
Os objetos copiados não manterão as configurações do Bloqueio de Objetos dos objetos originais.
-
Se o bucket do qual você está copiando os objetos usar a configuração aplicada pelo proprietário do bucket em Propriedade de objetos do S3, as ACLs de objeto não serão copiadas para o destino especificado.
-
Se você quiser copiar objetos para um bucket que usa a configuração aplicada pelo proprietário do bucket em Propriedade de objetos do S3, o bucket de origem também deve usar a configuração aplicada pelo proprietário do bucket ou você deve remover qualquer objeto concedido pela ACL a outras contas e grupos da AWS.
Para copiar um objeto
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
No painel de navegação esquerdo, escolha Buckets e selecione a guia Buckets de uso geral. Navegue até o bucket ou pasta do Amazon S3 que contém os objetos que você deseja copiar.
-
Marque a caixa de seleção à esquerda dos nomes dos objetos que você deseja copiar.
-
No menu Ações, escolha Copiar na lista de opções exibida.
-
Selecione o tipo de destino e a conta de destino. Para especificar o caminho de destino, escolha Browse S3 (Procurar S3), navegue até o destino e marque a caixa de seleção à esquerda do destino. Escolha Choose destination (Escolher destino) no canto inferior direito.
Outra alternativa é inserir o caminho de destino.
-
Se o versionamento de bucket não estiver habilitado, você verá um aviso recomendando que o habilite para ajudar a impedir a substituição ou exclusão involuntária de objetos. Se você quiser manter todas as versões de objetos neste bucket, selecione Enable Bucket Versioning (Ativar versionamento de bucket). Você também pode atualizar as propriedades de criptografia padrão e do Bloqueio de Objetos do S3 em Detalhes do destino.
-
Em Configurações adicionais de cópia, escolha se você quer Copiar configurações de origem, Não especificar configurações ou Especificar configurações. Copiar configurações de origem é a opção padrão. Se você quiser copiar o objeto somente sem os atributos das configurações de origem, escolha Não especificar configurações. Escolha Especificar configurações para especificar configurações referentes a classes de armazenamento, ACLs, tags de objeto, metadados, criptografia do lado do servidor e somas de verificação adicionais.
-
Escolha Copy (Copiar) no canto inferior direito. O Amazon S3 copia o objeto no destino.
O exemplo nesta seção mostra como copiar objetos de até 5 GB em uma única operação. Para copiar objetos maiores do que 5 GB, você deve usar um carregamento fracionado. Para ter mais informações, consulte Copiar um objeto usando multipart upload.
Este exemplo descreve como copiar um objeto usando a API REST do S3. Para obter mais informações sobre a API REST, consulte CopyObject.
Este exemplo copia o objeto flotsam
do bucket
para o objeto amzn-s3-demo-bucket1
jetsam
do bucket
, preservando seus metadados.amzn-s3-demo-bucket2
PUT /jetsam HTTP/1.1 Host:
amzn-s3-demo-bucket2
.s3.amazonaws.com x-amz-copy-source: /amzn-s3-demo-bucket1
/flotsam Authorization: AWS AKIAIOSFODNN7EXAMPLE:ENoSbxYByFA0UGLZUqJN5EUnLDg= Date: Wed, 20 Feb 2008 22:12:21 +0000
A assinatura foi gerada a partir das informações a seguir.
PUT\r\n \r\n \r\n Wed, 20 Feb 2008 22:12:21 +0000\r\n x-amz-copy-source:/
amzn-s3-demo-bucket1
/flotsam\r\n /amzn-s3-demo-bucket2
/jetsam
O Amazon S3 retorna a resposta a seguir, que especifica a ETag do objeto e quando ele foi modificado pela última vez.
HTTP/1.1 200 OK x-amz-id-2: Vyaxt7qEbzv34BnSu5hctyyNSlHTYZFMWK4FtzO+iX8JQNyaLdTshL0KxatbaOZt x-amz-request-id: 6B13C3C5B34AF333 Date: Wed, 20 Feb 2008 22:13:01 +0000 Content-Type: application/xml Transfer-Encoding: chunked Connection: close Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <CopyObjectResult> <LastModified>2008-02-20T22:13:01</LastModified> <ETag>"7e9c608af58950deeb370c98608ed097"</ETag> </CopyObjectResult>
Você também pode usar a AWS Command Line Interface (AWS CLI) para copiar um objeto do S3. Para obter mais informações, consulte copy-object
Para obter informações sobre o AWS CLI, consulte O que é AWS Command Line Interface? no Guia do usuário do AWS Command Line Interface.
Como mover um objeto
Para mover um objeto, use os métodos a seguir.
nota
-
Você pode mover um objeto se ele tiver menos de 5 GB. Se o objeto tiver mais de 5 GB, você deve usar a AWS CLI ou SDKs da AWS para movê-lo.
-
Para obter uma lista das permissões adicionais necessárias para mover objetos, consulte Permissões obrigatórias para operações de API do Amazon S3. Para ver exemplos das políticas que concedem essas permissões, consulte Exemplos de políticas baseadas em identidade para o Amazon S3.
-
Objetos criptografados com chaves de criptografia fornecidas pelo cliente (SSE-C) não podem ser movidos usando o console do S3. Para mover objetos criptografados com SSE-C, use a AWS CLI, SDKs da AWS ou a API REST do Amazon S3.
-
Ao mover pastas, aguarde a conclusão da operação Mover antes de fazer alterações adicionais nas pastas.
-
No console do Amazon S3, não é possível usar aliases de ponto de acesso do S3 como origem ou destino para operações Mover.
Como mover um objeto
-
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
No painel de navegação, escolha Buckets e selecione a guia Buckets de uso geral. Navegue até o bucket ou pasta do Amazon S3 que contém os objetos que você deseja mover.
-
Marque a caixa de seleção referente aos objetos que você quer mover.
-
No menu Ações, escolha Mover.
-
Para especificar o caminho de destino, escolha Procurar S3, navegue até o destino e marque a caixa de seleção do destino. Escolha Choose destination (Escolher destino).
Outra alternativa é inserir o caminho de destino.
-
Se o versionamento de bucket não estiver habilitado, você verá um aviso recomendando que o habilite para ajudar a impedir a substituição ou exclusão involuntária de objetos. Se você quiser manter todas as versões de objetos neste bucket, selecione Enable Bucket Versioning (Ativar versionamento de bucket). Você também pode atualizar as propriedades de criptografia padrão e do Bloqueio de Objetos em Detalhes do destino.
-
Em Configurações adicionais de cópia, escolha se você quer Copiar configurações de origem, Não especificar configurações ou Especificar configurações. Copiar configurações de origem é a opção padrão. Se você quiser copiar o objeto somente sem os atributos das configurações de origem, escolha Não especificar configurações. Escolha Especificar configurações para especificar configurações referentes a classes de armazenamento, ACLs, tags de objeto, metadados, criptografia do lado do servidor e somas de verificação adicionais.
-
Selecione Move (Mover) no canto inferior direito. O Amazon S3 move seus objetos para o destino.
Você também pode usar a AWS Command Line Interface (AWS CLI) para mover um objeto do S3. Para obter mais informações, consulte mv
Para obter informações sobre o AWS CLI, consulte O que é AWS Command Line Interface? no Guia do usuário do AWS Command Line Interface.
Para renomear um objeto
Use o procedimento a seguir para renomear um objeto.
nota
-
Você pode renomear um objeto se ele tiver menos de 5 GB. Para renomear objetos com menos de 5 GB, você deve usar a AWS CLIou SDKs da AWS para copiar o objeto com um novo nome e, em seguida, excluir o objeto original.
-
Para obter uma lista das permissões adicionais necessárias para copiar objetos, consulte Permissões obrigatórias para operações de API do Amazon S3. Para ver exemplos das políticas que concedem essas permissões, consulte Exemplos de políticas baseadas em identidade para o Amazon S3.
-
A renomeação de um objeto cria uma cópia do objeto com uma nova data de última modificação, depois adiciona um marcador de exclusão ao objeto original.
-
As configurações de bucket para criptografia padrão são aplicadas automaticamente a qualquer objeto especificado que não esteja criptografado.
-
Não é possível usar o console do Amazon S3 para renomear objetos com chaves de criptografia fornecidas pelo cliente (SSE-C). Para renomear objetos criptografados com SSE-C, use a AWS CLI, os AWS SDKs ou a API REST do Amazon S3 para copiar esses objetos com novos nomes.
-
Se esse bucket usar a configuração aplicada pelo proprietário do bucket para a funcionalidade Propriedade de Objeto do S3, as listas de controle de acesso (ACLs) a objetos não serão copiadas.
Para renomear um objeto
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
No painel de navegação, escolha Buckets e selecione a guia Buckets de uso geral. Navegue até a pasta ou o bucket do Amazon S3 que contém o objeto que você deseja copiar.
-
Marque a caixa de seleção referente ao objeto que você quer renomear.
-
No menu Ações, selecione Renomear objeto.
-
Na caixa Nome do novo objeto, insira o novo nome do objeto.
-
Em Configurações adicionais de cópia, escolha se você quer Copiar configurações de origem, Não especificar configurações ou Especificar configurações. Copiar configurações de origem é a opção padrão. Se você quiser copiar o objeto somente sem os atributos das configurações de origem, escolha Não especificar configurações. Escolha Especificar configurações para especificar configurações referentes a classes de armazenamento, ACLs, tags de objeto, metadados, criptografia do lado do servidor e somas de verificação adicionais.
-
Escolha Salvar alterações. O Amazon S3 renomeia o objeto.