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

Excluir um objeto de um bucket de diretório

Você pode excluir objetos de um bucket de diretório do Amazon S3 usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI) ou os AWS SDKs. Para ter mais informações, consulte Visão geral dos buckets de diretório e Buckets de diretório e S3 Express One Zone.

Atenção
  • Não é possível desfazer a exclusão de um objeto.

  • Essa ação exclui todos os objetos especificados. Ao excluir pastas, aguarde a conclusão da ação de exclusão antes de adicionar objetos novos à pasta. Caso contrário, os objetos novos também podem ser excluídos.

nota

Ao excluir vários objetos de um bucket de diretório de forma programática, observe o seguinte:

  • As chaves de objeto em solicitações DeleteObjects devem conter pelo menos um caractere diferente de um espaço em branco. As strings que têm somente espaços em branco não são compatíveis.

  • As chaves de objeto em solicitações DeleteObjects não podem conter caracteres de controle Unicode, exceto nova linha (\t), tabulação (\n) e avanço de linha (\r).

Para excluir objetos
  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 excluir.

  5. Escolha a guia Objetos. Na lista Objetos, marque as caixas de seleção à esquerda dos objetos que você deseja excluir.

  6. Escolha Excluir.

  7. Na página Excluir objetos, insira permanently delete na caixa de texto.

  8. Escolha Delete objects (Excluir objetos).

SDK for Java 2.x

O exemplo a seguir exclui objetos de um bucket de diretório usando o AWS SDK for Java 2.x.

static void deleteObject(S3Client s3Client, String bucketName, String objectKey) { try { DeleteObjectRequest del = DeleteObjectRequest.builder() .bucket(bucketName) .key(objectKey) .build(); s3Client.deleteObject(del); System.out.println("Object " + objectKey + " has been deleted"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for Python

O exemplo a seguir exclui objetos de um bucket de diretório usando o AWS SDK for Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def delete_objects(s3_client, bucket_name, objects): ''' Delete a list of objects in a directory bucket :param s3_client: boto3 S3 client :param bucket_name: Bucket that contains objects to be deleted; for example, 'doc-example-bucket--usw2-az1--x-s3' :param objects: List of dictionaries that specify the key names to delete :return: Response output, else False ''' try: response = s3_client.delete_objects( Bucket = bucket_name, Delete = { 'Objects': objects } ) return response except ClientError as e: logging.error(e) return False if __name__ == '__main__': region = 'us-west-2' bucket_name = 'BUCKET_NAME' objects = [ { 'Key': '0.txt' }, { 'Key': '1.txt' }, { 'Key': '2.txt' }, { 'Key': '3.txt' }, { 'Key': '4.txt' } ] s3_client = boto3.client('s3', region_name = region) results = delete_objects(s3_client, bucket_name, objects) if results is not None: if 'Deleted' in results: print (f'Deleted {len(results["Deleted"])} objects from {bucket_name}') if 'Errors' in results: print (f'Failed to delete {len(results["Errors"])} objects from {bucket_name}')

O exemplo de comando delete-object a seguir mostra como você pode usar a AWS CLI para excluir um objeto de um bucket. Para executar esse comando, substitua os user input placeholders por suas próprias informações.

aws s3api delete-object --bucket bucket-base-name--azid--x-s3 --key KEY_NAME

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