

Le AWS SDK pour Java 1.x a été atteint end-of-support le 31 décembre 2025. Nous vous recommandons de migrer vers le pour continuer [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)à bénéficier des nouvelles fonctionnalités, des améliorations de disponibilité et des mises à jour de sécurité.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création, listage et suppression de Amazon S3 buckets
<a name="examples-s3-buckets"></a>

Chaque objet (fichier) Amazon S3 doit résider dans un *compartiment*, qui représente une collection (conteneur) d'objets. Chaque compartiment est identifié par une *clé* (nom) qui doit être unique. Pour obtenir des informations détaillées sur les buckets et leur configuration, consultez la section [Utilisation des Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) dans le Guide de l' Amazon Simple Storage Service utilisateur.

**Note**  
Bonne pratique  
Nous vous recommandons d'activer la règle du [AbortIncompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html)cycle de vie sur vos Amazon S3 buckets.  
Cette règle indique Amazon S3 d'abandonner les téléchargements partitionnés qui ne sont pas terminés dans un certain nombre de jours après leur lancement. Lorsque le délai défini est dépassé, le téléchargement est Amazon S3 interrompu, puis les données de téléchargement incomplètes sont supprimées.  
Pour plus d'informations, consultez la section [Configuration du cycle de vie d'un bucket avec gestion des versions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-bucket-with-versioning.html) dans le guide de l' Amazon S3 utilisateur.

**Note**  
Ces exemples de code supposent que vous comprenez le contenu de la section [Utilisation du AWS SDK pour Java et que vous avez configuré les](basics.md) AWS informations d'identification par défaut à l'aide des informations de [configuration des informations AWS d'identification et de la région pour le développement](setup-credentials.md).

## Création d'un compartiment
<a name="create-bucket"></a>

Utilisez la méthode du client AmazonS3. `createBucket` Le nouveau [compartiment](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html) est renvoyé. La méthode `createBucket` déclenche une exception si le compartiment existe déjà.

**Note**  
Pour vérifier si un compartiment existe déjà avant de tenter d'en créer un avec le même nom, appelez la méthode `doesBucketExist`. Cette méthode renvoie `true` si le compartiment existe et `false` sinon.

 **Importations** 

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

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/CreateBucket.java) sur GitHub.

## Etablir une liste des compartiments
<a name="list-buckets"></a>

Utilisez la méthode du client AmazonS3. `listBucket` En cas de réussite, une liste de [compartiments](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/Bucket.html) est renvoyée.

 **Importations** 

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

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/ListBuckets.java) sur GitHub.

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

Avant de pouvoir supprimer un Amazon S3 compartiment, vous devez vous assurer qu'il est vide, faute de quoi une erreur pourrait se produire. S'il s'agit d'un [compartiment avec gestion des versions](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), vous devez également supprimer tous les objets versionnés associés à celui-ci.

**Note**  
L'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) inclut chacune de ces étapes dans l'ordre, fournissant une solution complète pour supprimer un Amazon S3 bucket et son contenu.

**Topics**
+ [Suppression des objets d'un compartiment sans gestion des versions avant sa suppression](#remove-objects-from-an-unversioned-bucket-before-deleting-it)
+ [Suppression des objets d'un compartiment avec gestion des versions avant sa suppression](#remove-objects-from-a-versioned-bucket-before-deleting-it)
+ [Suppression d'un compartiment vide](#delete-an-empty-bucket)

### Suppression des objets d'un compartiment sans gestion des versions avant sa suppression
<a name="remove-objects-from-an-unversioned-bucket-before-deleting-it"></a>

Utilisez la `listObjects` méthode du client AmazonS3 pour récupérer la liste des objets et `deleteObject` pour supprimer chacun d'entre eux.

 **Importations** 

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

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) sur GitHub.

### Suppression des objets d'un compartiment avec gestion des versions avant sa suppression
<a name="remove-objects-from-a-versioned-bucket-before-deleting-it"></a>

Si vous utilisez un [compartiment avec gestion des versions](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html), vous devez également supprimer toutes les versions stockées des objets du compartiment pour que le compartiment puisse être supprimé.

En utilisant un modèle similaire à celui utilisé lors de la suppression d'objets dans un compartiment, supprimez les objets versionnés en utilisant la `listVersions` méthode du client AmazonS3 pour répertorier tous les objets versionnés, puis `deleteVersion` pour supprimer chacun d'entre eux.

 **Importations** 

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

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) sur GitHub.

### Suppression d'un compartiment vide
<a name="delete-an-empty-bucket"></a>

Une fois que vous avez supprimé les objets d'un compartiment (y compris les objets versionnés), vous pouvez supprimer le compartiment lui-même en utilisant la méthode du client AmazonS3. `deleteBucket`

 **Importations** 

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

 **Code** 

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

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucket.java) sur GitHub.