

O AWS SDK para Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criar, listar e excluir buckets do Amazon S3
<a name="examples-s3-buckets"></a>

Cada objeto (arquivo) no Amazon S3 deve residir em um *bucket*, que representa um conjunto (contêiner) de objetos. Cada bucket é conhecido por uma *chave* (nome), que deve ser exclusiva. Para obter informações detalhadas sobre os buckets e suas configurações, consulte [Trabalhar com buckets do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) Guia do usuário do Amazon Simple Storage Service.

**nota**  
Melhor prática  
Recomendamos habilitar a regra de ciclo de vida [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) nos buckets do Amazon S3.  
Essa regra leva o Amazon S3 a anular multipart uploads que não sejam concluídos dentro de um número específico de dias depois de serem iniciados. Quando o limite de tempo definido é excedido, o Amazon S3 anula o upload e exclui os dados de uploads incompletos.  
Para obter mais informações, consulte [Configuração do ciclo de vida de um bucket com versionamento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-bucket-with-versioning.html) no Guia do usuário do Amazon S3.

**nota**  
Esses exemplos de código pressupõem que você entenda o material em [Usar o AWS SDK para Java](basics.md) e tenha configurado credenciais da AWS padrão usando as informações em [Configurar credenciais e região da AWS para desenvolvimento](setup-credentials.md).

## Criar um bucket
<a name="create-bucket"></a>

Use o método `createBucket` do cliente AmazonS3. O novo [bucket](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html) é retornado. O método `createBucket` lançará uma exceção se o bucket já existir.

**nota**  
Para verificar se um bucket já existe antes de tentar criar um com o mesmo nome, chame o método `doesBucketExist`. Isso retornará `true` se o bucket existir e, do contrário, `false`.

 **Importações** 

```
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.AmazonS3Exception;
import com.amazonaws.services.s3.model.Bucket;

import java.util.List;
```

 **Código da** 

```
if (s3.doesBucketExistV2(bucket_name)) {
    System.out.format("Bucket %s already exists.\n", bucket_name);
    b = getBucket(bucket_name);
} else {
    try {
        b = s3.createBucket(bucket_name);
    } catch (AmazonS3Exception e) {
        System.err.println(e.getErrorMessage());
    }
}
return b;
```

Veja o [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/CreateBucket.java) no GitHub.

## Listar buckets
<a name="list-buckets"></a>

Use o método `listBucket` do cliente AmazonS3. Se for bem-sucedido, uma lista de [buckets](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html) será retornada.

 **Importações** 

```
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.Bucket;

import java.util.List;
```

 **Código da** 

```
List<Bucket> buckets = s3.listBuckets();
System.out.println("Your {S3} buckets are:");
for (Bucket b : buckets) {
    System.out.println("* " + b.getName());
}
```

Veja o [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/ListBuckets.java) no GitHub.

## Excluir um Bucket
<a name="delete-bucket"></a>

Para excluir um bucket do Amazon S3, você deve verificar se o bucket está vazio, ou isso resultará em um erro. Se tiver um [bucket versionado](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), você também deverá excluir todos os objetos versionados associados ao bucket.

**nota**  
O [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) inclui todas essas etapas em ordem, fornecendo uma solução completa para excluir um bucket do Amazon S3 e o conteúdo.

**Topics**
+ [Remover objetos de um bucket não versionado antes de excluí-lo](#remove-objects-from-an-unversioned-bucket-before-deleting-it)
+ [Remover objetos de um bucket versionado antes de excluí-lo](#remove-objects-from-a-versioned-bucket-before-deleting-it)
+ [Excluir um bucket vazio](#delete-an-empty-bucket)

### Remover objetos de um bucket não versionado antes de excluí-lo
<a name="remove-objects-from-an-unversioned-bucket-before-deleting-it"></a>

Use o método `listObjects` de cliente do AmazonS3 para recuperar a lista de objetos e `deleteObject` para excluir cada um.

 **Importações** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import java.util.Iterator;
```

 **Código da** 

```
System.out.println(" - removing objects from bucket");
ObjectListing object_listing = s3.listObjects(bucket_name);
while (true) {
    for (Iterator<?> iterator =
         object_listing.getObjectSummaries().iterator();
         iterator.hasNext(); ) {
        S3ObjectSummary summary = (S3ObjectSummary) iterator.next();
        s3.deleteObject(bucket_name, summary.getKey());
    }

    // more object_listing to retrieve?
    if (object_listing.isTruncated()) {
        object_listing = s3.listNextBatchOfObjects(object_listing);
    } else {
        break;
    }
}
```

Veja o [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) no GitHub.

### Remover objetos de um bucket versionado antes de excluí-lo
<a name="remove-objects-from-a-versioned-bucket-before-deleting-it"></a>

Se estiver usando um [bucket versionado](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), também será necessário remover todas as versões armazenadas dos objetos no bucket para o bucket ser excluído.

Usando um padrão semelhante ao usado ao remover objetos dentro de um bucket, remova objetos versionados usando o método `listVersions` de cliente do AmazonS3 para listar todos os objetos versionados e `deleteVersion` para excluir cada um.

 **Importações** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import java.util.Iterator;
```

 **Código da** 

```
System.out.println(" - removing versions from bucket");
VersionListing version_listing = s3.listVersions(
        new ListVersionsRequest().withBucketName(bucket_name));
while (true) {
    for (Iterator<?> iterator =
         version_listing.getVersionSummaries().iterator();
         iterator.hasNext(); ) {
        S3VersionSummary vs = (S3VersionSummary) iterator.next();
        s3.deleteVersion(
                bucket_name, vs.getKey(), vs.getVersionId());
    }

    if (version_listing.isTruncated()) {
        version_listing = s3.listNextBatchOfVersions(
                version_listing);
    } else {
        break;
    }
}
```

Veja o [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) no GitHub.

### Excluir um bucket vazio
<a name="delete-an-empty-bucket"></a>

Assim que remover os objetos de um bucket (inclusive todos os objetos versionados), será possível excluir o bucket em si usando o método `deleteBucket` de cliente do AmazonS3.

 **Importações** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import java.util.Iterator;
```

 **Código da** 

```
System.out.println(" OK, bucket ready to delete!");
s3.deleteBucket(bucket_name);
```

Veja o [exemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) no GitHub.