Esvaziar um bucket - Amazon Simple Storage Service

Esvaziar um bucket

Você pode esvaziar o conteúdo de um bucket usando o console do Amazon S3, AWS SDKs ou a AWS Command Line Interface (AWS CLI). Quando você esvazia um bucket, você exclui todos os objetos, mas mantém o bucket. Não é possível desfazer a ação de esvaziar um bucket. Os objetos adicionados ao bucket enquanto a ação de esvaziar estiver em andamento também poderão ser excluídos. Todos os objetos (incluindo todas as versões do objeto e marcadores de exclusão) no bucket devem ser excluídos antes que o próprio bucket possa ser excluído.

Ao esvaziar um bucket com o versionamento do S3 habilitado ou suspenso, todas as versões de todos os objetos no bucket são excluídas. Para ter mais informações, consulte Trabalhar com objetos em um bucket com versionamento habilitado.

Você também pode especificar a configuração de ciclo de vida em um bucket para expirar objetos para que o Amazon S3 possa excluí-los. Para ter mais informações, consulte Definir uma configuração de ciclo de vida em um bucket. Para esvaziar um bucket grande, recomendamos que você use uma regra de configuração do ciclo de vida do S3. A expiração do ciclo de vida é um processo assíncrono, portanto, a regra pode levar alguns dias para ser executada antes que o bucket fique vazio. Depois da primeira vez que o Amazon S3 executa a regra, todos os objetos que estão qualificados para expiração são marcados para exclusão. Você não recebe mais cobranças pelos objetos marcados para exclusão. Para obter mais informações, consulte Como esvaziar um bucket do Amazon S3 usando uma regra de configuração do ciclo de vida?.

Você pode usar o console do Amazon S3 para esvaziar um bucket, que exclui todos os objetos no bucket sem excluir o bucket.

Para esvaziar um bucket do S3
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista Bucket name (Nome do bucket), selecione a opção ao lado do nome do bucket que você deseja esvaziar e selecione Empty (Esvaziar).

  3. Na página Empty bucket (Esvaziar bucket), confirme se deseja esvaziar o bucket inserindo o nome do bucket no campo de texto e escolha Empty (Esvaziar).

  4. Monitore o andamento do processo de esvaziamento do bucket na página Esvaziar bucket: status.

Você só pode esvaziar um bucket usando a AWS CLI se o bucket não tiver o versionamento habilitado. Se o versionamento não estiver habilitado, você poderá usar o comando rm (remove) da AWS CLI com o parâmetro --recursive para esvaziar um bucket (ou remover um subconjunto de objetos com um prefixo de nome de chave específico).

O comando rm a seguir remove os objetos com o prefixo de nome de chave doc, por exemplo, doc/doc1 e doc/doc2.

$ aws s3 rm s3://bucket-name/doc --recursive

Use o comando a seguir para remover todos os objetos sem especificar um prefixo.

$ aws s3 rm s3://bucket-name --recursive

Para obter informações, consulte Uso de comandos de alto nível do S3 com a AWS CLI no Manual do usuário da AWS Command Line Interface.

nota

Não é possível remover objetos de um bucket que tenha o versionamento ativado. O Amazon S3 adiciona um marcador de exclusão quando você exclui um objeto, que é o que este comando faz. Para obter mais informações sobre o S3 Bucket Versioning, consulte Usando o versionamento em buckets do S3.

Você pode usar os AWS SDKs para esvaziar um bucket ou para remover um subconjunto de objetos com um prefixo de nome de chave específico.

Para obter um exemplo de como esvaziar um bucket usando o AWS SDK for Java, consulte Excluir um bucket. O código exclui todos os objetos, independentemente de o bucket ter versionamento habilitado e, em seguida, exclui o bucket. Para só esvaziar o bucket, certifique-se de remover o comando que exclui o bucket.

Para obter mais informações sobre como usar outros AWS SDKs, consulte Ferramentas para a Amazon Web Services.

Para esvaziar um bucket grande, recomendamos que você use uma regra de configuração do ciclo de vida do S3. A expiração do ciclo de vida é um processo assíncrono, portanto, a regra pode levar alguns dias para ser executada antes que o bucket fique vazio. Depois da primeira vez que o Amazon S3 executa a regra, todos os objetos que estão qualificados para expiração são marcados para exclusão. Você não recebe mais cobranças pelos objetos marcados para exclusão. Para obter mais informações, consulte Como esvaziar um bucket do Amazon S3 usando uma regra de configuração do ciclo de vida?.

Se você usar uma configuração de ciclo de vida para esvaziar seu bucket, a configuração deverá incluir versões atuais, versões não atuais, marcadores de exclusão e uploads fracionados incompletos.

Você pode adicionar regras de configuração de ciclo de vida para tornar todos os objetos ou um subconjunto de objetos expirados com um prefixo de nome de chave específico. Por exemplo, para remover todos os objetos em um bucket, você pode definir uma regra de ciclo de vida para tornar os objetos expirados um dia após a criação.

O Amazon S3 é compatível com uma regra de ciclo de vida de bucket que você pode usar para interrompe uploads fracionados que não são concluídos dentro de um número especificado de dias após a inicialização. Recomendamos que você configure essa regra de ciclo de vida para minimizar os custos de armazenamento. Para obter mais informações, consulte Configurar uma política de ciclo de vida de bucket para anular uploads incompletos de várias partes.

Para obter mais informações sobre como usar uma configuração de ciclo de vida para esvaziar um bucket, consulte Definir uma configuração de ciclo de vida em um bucket e Expirando objetos.

Esvaziar um bucket com o AWS CloudTrail configurado

O AWS CloudTrail rastreia eventos de dados em nível de objeto em um bucket do Amazon S3, como a exclusão de objetos. Se você usa um bucket como destino para registrar os eventos do CloudTrail e está excluindo objetos desse mesmo bucket, você pode estar criando objetos enquanto esvazia o bucket. Para evitar isso, pare as trilhas do AWS CloudTrail. Para obter mais informações sobre como impedir que as trilhas do CloudTrail registrem eventos, consulte Desativar o registro de uma trilha no Guia do usuário do AWS CloudTrail.

Outra alternativa para impedir que as trilhas do CloudTrail sejam adicionadas ao bucket é adicionar uma instrução de negação s3:PutObject à política de bucket. Se você quiser armazenar novos objetos no bucket posteriormente, precisará remover essa declaração s3:PutObject de negação. Para obter mais informações, consulte Operações com objetos e Elementos da política de JSON do IAM: efeito no Guia do usuário do IAM.