Renomear objetos em buckets de diretório
Usando a operação RenameObject
, você pode renomear atomicamente um objeto existente em um bucket de diretório que usa a classe de armazenamento S3 Express One Zone, sem nenhuma movimentação de dados. Você pode renomear um objeto especificando o nome do objeto existente como origem e o novo nome como destino no mesmo bucket de diretório. A operação de API RenameObject
não terá êxito em objetos que terminam com o caractere delimitador de barra (/
). Para ter mais informações, consulte Nomear objetos do Amazon S3.
A operação RenameObject
geralmente é concluída em milissegundos, independentemente do tamanho do objeto. Esse recurso acelera determinadas aplicações, como gerenciamento de arquivos de log, processamento de mídia e data analytics. Além disso, RenameObject
preserva todas as propriedades de metadados do objeto, como classe de armazenamento, tipo de criptografia, data de criação, data da última modificação e soma de verificação.
nota
Só é possível usar RenameObject
com objetos armazenados na classe de armazenamento S3 Express One Zone.
Para conceder acesso à operação RenameObject
, recomendamos usar a operação CreateSession
para autorização baseada em sessão. Mais especificamente, você concede a permissão s3express:CreateSession
ao bucket de diretório em uma política de bucket ou em uma política baseada em identidade. Em seguida, você faz a chamada de API CreateSession
no bucket do diretório para obter um token de sessão. Com o token de sessão no cabeçalho da solicitação, você pode fazer solicitações de API para essa operação. Depois que o token da sessão expirar, você faz outra chamada de API CreateSession
para gerar um novo token de sessão e usá-lo. A AWS CLI e os SDKs da AWS vão criar e gerenciar sua sessão, até mesmo atualizar automaticamente o respectivo token para evitar interrupções no serviço quando uma sessão expira. Para ter mais informações sobre autorização, consulte CreateSession
na Referência de API do Amazon S3. Para saber mais sobre as operações de API de endpoint zonal, consulte Autorizar operações de API de endpoint zonal com CreateSession
.
Se você não quiser substituir um objeto existente, adicione o cabeçalho condicional If-None-Match
com o valor ‘*’
na solicitação RenameObject
. O Amazon S3 retornará o erro 412 Precondition Failed
se o nome do objeto já existir. Para obter mais informações, consulte RenameObject
na Referência da API do Amazon S3.
RenameObject
é uma operação de API de endpoint zonal (operação em nível de objeto ou de plano de dados) que é registrada em log em AWS CloudTrail. Você pode usar o CloudTrail para coletar informações sobre a operação RenameObject
realizada em seus objetos em buckets de diretório. Para ter mais informações, consulte Registro em log com o AWS CloudTrail para buckets de diretório e Exemplos de arquivos de log do CloudTrail para buckets de diretório.
O S3 Express One Zone é a única classe de armazenamento que permite a operação RenameObject
, que tem o mesmo preço das solicitações PUT
, COPY
, POST
e LIST
(por mil solicitações) no S3 Express One Zone. Para obter mais informações, consulte Preço do Amazon S3
Renomear um objeto
Para renomear um objeto em um bucket de diretório, você pode usar o console do Amazon S3, a AWS CLI, SDKs da AWS, a API REST ou o Mountpoint para Amazon S3 (versão 1.19.0 ou posterior).
Como renomear um objeto em um bucket de diretório
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 à esquerda, escolha Buckets e selecione a guia Buckets de diretório. Navegue até o bucket de diretório do Amazon S3 que contém o objeto que você deseja renomear.
-
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.
nota
Se você especificar um nome de objeto que seja igual ao de um objeto existente, a operação não terá êxito e o Amazon S3 retornará o erro
412 Precondition Failed
. O comprimento do nome da chave do objeto não pode exceder 1.024 bytes. Os prefixos incluídos no nome do objeto entram na contagem do comprimento total. Escolha Renomear objeto. O Amazon S3 renomeia o objeto.
Os exemplos de rename-object
mostram como você pode usar a AWS CLI para renomear um objeto. Para executar esse comando, substitua os espaços reservados para entrada do usuário
por suas próprias informações.
O exemplo a seguir mostra como renomear um objeto com uma verificação condicional na ETag do objeto de origem.
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --source-if-match "\"a1b7c3d2e5f6
\""
Esse comando faz o seguinte:
Muda o nome de um objeto de
original-file.txt
paranew-file.txt
no bucket de diretórioamzn-s3-demo-bucket--usw2-az1--x-s3
.Só renomeia se a ETag do objeto de origem corresponder a “
a1b7c3d4e5f6
”.
Se a ETag não corresponder, a operação não terá êxito e exibirá um erro 412
Precondition Failed
.
O exemplo a seguir mostra como renomear um objeto com uma verificação condicional no novo nome de objeto especificado.
aws s3api rename-object \ --bucket
amzn-s3-demo-bucket--usw2-az1--x-s3
\ --keynew-file.txt
\ --rename-sourceamzn-s3-demo-bucket--usw2-az1--x-s3
/original-file.txt
\ --destination-if-none-match "\"e5f3g7h8i9j0
\""
Esse comando faz o seguinte:
Muda o nome de um objeto de
original-file.txt
paranew-file.txt
no bucket de diretórioamzn-s3-demo-bucket--usw2-az1--x-s3
.Só executa a operação de renomeação se o objeto existir e a respectiva ETag não corresponder a “
e5f3g7h8i9j0
”.
Se já existir um objeto com o novo nome especificado e a ETag correspondente, a operação não terá êxito e exibirá o erro 412 Precondition Failed
.
Você pode enviar solicitações REST para renomear um objeto. Para obter mais informações, consulte RenameObject
na Referência da API do Amazon S3.
A partir da versão 1.19.0 ou posterior, o Mountpoint para Amazon S3 permite a renomeação de objetos no S3 Express One Zone. Consulte mais informações sobre o Mountpoint em Working with Mountpoint.