要使用AWS SDK for Java版本2删除S3文件夹或删除多个S3对象,可以使用以下代码示例:
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
import software.amazon.awssdk.services.s3.model.S3Object;
import java.util.List;
public class S3FolderDeletionExample {
public static void main(String[] args) {
String bucketName = "your_bucket_name";
String folderName = "your_folder_name";
S3Client s3Client = S3Client.create();
// 列出文件夹中的所有对象
ListObjectsV2Request listObjectsRequest = ListObjectsV2Request.builder()
.bucket(bucketName)
.prefix(folderName + "/") // 使用前缀来过滤文件夹中的对象
.build();
ListObjectsV2Response listObjectsResponse = s3Client.listObjectsV2(listObjectsRequest);
List objects = listObjectsResponse.contents();
// 删除每个对象
for (S3Object s3Object : objects) {
String key = s3Object.key();
DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest.builder()
.bucket(bucketName)
.key(key)
.build();
s3Client.deleteObject(deleteObjectRequest);
}
System.out.println("S3文件夹删除成功!");
}
}
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.DeleteObjectsRequest;
import software.amazon.awssdk.services.s3.model.DeleteObjectsResponse;
import software.amazon.awssdk.services.s3.model.DeleteObjectsResponseDeletedObject;
import java.util.ArrayList;
import java.util.List;
public class S3ObjectDeletionExample {
public static void main(String[] args) {
String bucketName = "your_bucket_name";
S3Client s3Client = S3Client.create();
// 创建要删除的对象列表
List objectsToDelete = new ArrayList<>();
objectsToDelete.add(DeleteObjectsRequest.builder().key("object_key1").build());
objectsToDelete.add(DeleteObjectsRequest.builder().key("object_key2").build());
// 添加更多要删除的对象
// 删除多个对象
DeleteObjectsRequest deleteObjectsRequest = DeleteObjectsRequest.builder()
.bucket(bucketName)
.delete(Delete.builder().objects(objectsToDelete).build())
.build();
DeleteObjectsResponse deleteObjectsResponse = s3Client.deleteObjects(deleteObjectsRequest);
List deletedObjects = deleteObjectsResponse.deleted();
// 打印已删除的对象
System.out.println("已删除的对象:");
for (DeleteObjectsResponseDeletedObject deletedObject : deletedObjects) {
System.out.println("已删除对象的键:" + deletedObject.key());
}
}
}
请确保替换示例代码中的your_bucket_name和your_folder_name为实际的S3存储桶名称和文件夹名称。另外,您还需要在代码中提供AWS凭证,例如通过配置~/.aws/credentials文件或使用环境变量。