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.
À utiliser DeleteObjectsavec un AWS Kit SDK
L'exemple de code suivant montre comment utiliserDeleteObjects.
- Java
-
- SDK pour Java 2.x
-
Supprimez plusieurs objets dans un compartiment de répertoires.
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.Delete;
import software.amazon.awssdk.services.s3.model.DeleteObjectsRequest;
import software.amazon.awssdk.services.s3.model.DeleteObjectsResponse;
import software.amazon.awssdk.services.s3.model.ObjectIdentifier;
import software.amazon.awssdk.services.s3.model.S3Exception;
import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.example.s3.util.S3DirectoryBucketUtils.createDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.createS3Client;
import static com.example.s3.util.S3DirectoryBucketUtils.deleteDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.getFilePath;
import static com.example.s3.util.S3DirectoryBucketUtils.putDirectoryBucketObject;
/**
* Deletes multiple objects from the specified S3 directory bucket.
*
* @param s3Client The S3 client used to interact with S3
* @param bucketName The name of the directory bucket
* @param objectKeys The list of keys (names) of the objects to be deleted
*/
public static void deleteDirectoryBucketObjects(S3Client s3Client, String bucketName, List<String> objectKeys) {
logger.info("Deleting objects from bucket: {}", bucketName);
try {
// Create a list of ObjectIdentifier.
List<ObjectIdentifier> identifiers = objectKeys.stream()
.map(key -> ObjectIdentifier.builder().key(key).build())
.toList();
Delete delete = Delete.builder()
.objects(identifiers)
.build();
DeleteObjectsRequest deleteObjectsRequest = DeleteObjectsRequest.builder()
.bucket(bucketName)
.delete(delete)
.build();
DeleteObjectsResponse deleteObjectsResponse = s3Client.deleteObjects(deleteObjectsRequest);
deleteObjectsResponse.deleted().forEach(deleted -> logger.info("Deleted object: {}", deleted.key()));
} catch (S3Exception e) {
logger.error("Failed to delete objects: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
e.awsErrorDetails().errorCode(), e);
throw e;
}
}
Pour obtenir la liste complète des guides de développement du AWS SDK et des exemples de code, consultezDéveloppement avec Amazon S3 à l'aide du AWS Kits SDK. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes du kit SDK.