

La AWS SDK para Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación, enumeración y eliminación de buckets de Amazon S3
<a name="examples-s3-buckets"></a>

Todos los objetos (archivos) de Amazon S3 deben residir en un *bucket*, que representa una colección (contenedor) de objetos. Cada bucket se designa por medio de una *clave* (nombre), que debe ser única. Para obtener información detallada acerca de los buckets y su configuración, consulte [Uso de buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) en la Guía del usuario de Amazon Simple Storage Service.

**nota**  
Práctica recomendada  
Le recomendamos que habilite la regla del ciclo de vida [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) en los buckets de Amazon S3.  
Esta regla le indica a Amazon S3 que anule las cargas multiparte que no se completen en un número especificado de días después de iniciarse. Cuando se supera el plazo establecido, Amazon S3 anula la carga y, a continuación, elimina la carga de datos incompleta.  
Para obtener más información, consulte [Configuración de ciclo de vida para un bucket con control de versiones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-bucket-with-versioning.html) en la Guía del usuario de Amazon S3.

**nota**  
En estos ejemplos de código se presupone que conoce la información que se describe en [Uso del AWS SDK para Java](basics.md) y que ha configurado credenciales de AWS predeterminadas mediante la información de [Configuración de credenciales y regiones de AWS para desarrollo](setup-credentials.md).

## Crear un bucket
<a name="create-bucket"></a>

Utilizar el método `createBucket` del cliente AmazonS3. Se devuelve el nuevo [bucket](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html). El método `createBucket` producirá una excepción si el bucket ya existe.

**nota**  
Para comprobar si un bucket ya existe antes de intentar crear uno con el mismo nombre, llame al método `doesBucketExist`. Este método devolverá `true` si el bucket existe y `false` en caso contrario.

 **Importaciones** 

```
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 de** 

```
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;
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/CreateBucket.java) en GitHub.

## Lista de buckets
<a name="list-buckets"></a>

Utilizar el método `listBucket` del cliente AmazonS3. Si se ejecuta correctamente, se devuelve una lista de [buckets](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html).

 **Importaciones** 

```
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 de** 

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

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/ListBuckets.java) en GitHub.

## Eliminar un bucket
<a name="delete-bucket"></a>

Antes de eliminar un bucket de Amazon S3, debe asegurarse de que el bucket está vacío o se producirá un error. Si tiene un [bucket con control de versiones](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), también debe eliminar todos los objetos con control de versiones asociados al bucket.

**nota**  
El [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) incluye cada uno de estos pasos en orden, lo que constituye una solución completa para eliminar un bucket de Amazon S3 y su contenido.

**Topics**
+ [Eliminar objetos de un bucket sin control de versiones antes de eliminarlo](#remove-objects-from-an-unversioned-bucket-before-deleting-it)
+ [Eliminar objetos de un bucket con control de versiones antes de eliminarlo](#remove-objects-from-a-versioned-bucket-before-deleting-it)
+ [Eliminar un bucket vacío](#delete-an-empty-bucket)

### Eliminar objetos de un bucket sin control de versiones antes de eliminarlo
<a name="remove-objects-from-an-unversioned-bucket-before-deleting-it"></a>

Utilice el método `listObjects` del cliente AmazonS3 para recuperar la lista de objetos y `deleteObject` para eliminar cada uno de ellos.

 **Importaciones** 

```
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 de** 

```
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;
    }
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) en GitHub.

### Eliminar objetos de un bucket con control de versiones antes de eliminarlo
<a name="remove-objects-from-a-versioned-bucket-before-deleting-it"></a>

Si utiliza un [bucket con control de versiones](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), también tendrá que eliminar todas las versiones almacenadas de los objetos del bucket para poder eliminarlo.

Siguiendo un patrón similar al utilizado para eliminar objetos dentro de un bucket, elimine los objetos con control de versiones utilizando el método `listVersions` del cliente AmazonS3 para mostrar todos los objetos con control de versiones y después `deleteVersion` para eliminar cada uno de ellos.

 **Importaciones** 

```
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 de** 

```
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;
    }
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) en GitHub.

### Eliminar un bucket vacío
<a name="delete-an-empty-bucket"></a>

Después de eliminar los objetos de un bucket (incluidos los objetos con control de versiones), puede eliminar el propio bucket mediante el método `deleteBucket` del cliente AmazonS3.

 **Importaciones** 

```
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 de** 

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

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) en GitHub.