

# Excluir objetos de um bucket de diretório
<a name="directory-bucket-delete-object"></a>

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 obter mais informações, consulte [Trabalhar com buckets de diretório](directory-buckets-overview.md) e [S3 Express One Zone](directory-bucket-high-performance.md#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`).

## Usar o console do S3
<a name="delete-object-directory-bucket-console"></a>

**Para excluir objetos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. No painel de navegação à esquerda, escolha **Buckets de diretórios**.

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

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

1. Escolha **Excluir**.

   

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

1. Escolha **Delete objects** (Excluir objetos).

## Usar SDKs da AWS
<a name="delete-object-directory-bucket-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
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 ]

**Example**  
O exemplo a seguir exclui objetos de um bucket de diretório usando o AWS SDK para 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}')
```

------

## Como usar o AWS CLI
<a name="directory-download-object-cli"></a>

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}}--{{zone-id}}--x-s3 --key {{KEY_NAME}} 
```

Para ter mais informações, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-object.html) na *Referência de comandos da AWS CLI*.

O exemplo de comando `delete-objects` 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.

O arquivo `delete.json` é o seguinte: 

```
{
    "Objects": [
        {
            "Key": "0.txt"
        },
        {
            "Key": "1.txt"
        },
        {
            "Key": "2.txt"
        },
        {
            "Key": "3.txt"
        }
    ]
}
```

O exemplo de comando `delete-objects` é o seguinte:

```
aws s3api delete-objects --bucket {{bucket-base-name}}--{{zone-id}}--x-s3 --delete file://{{delete.json}} 
```

Para ter mais informações, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/delete-objects.html) na *Referência de comandos da AWS CLI*.