我正在寻找一种更好的方法来删除 S3 存储桶。
适用于 .Net 的 AWS 开发工具包不允许删除非空存储桶,
并且没有任何重载DeleteBucket()
来删除存储桶中的任何子对象。
这是我目前删除存储桶的方式 -
- 检索存储桶中的所有对象
- 删除对象
- 删除存储桶
//先删除桶中的所有对象——非空桶是不能删除的
using (ListObjectsResponse response = amazonS3Client.ListObjects(new ListObjectsRequest().WithBucketName(bucket.Name)))
{
if (response.S3Objects.Count > 0)
{
List<KeyVersion> keys = response.S3Objects.Select(obj => new KeyVersion(obj.Key)).ToList();
DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest
{
BucketName = bucket.Name,
Keys = keys
};
amazonS3Client.DeleteObjects(deleteObjectsRequest);
}
}
//Delete Bucket
DeleteBucketRequest request = new DeleteBucketRequest
{
BucketName = bucket.Name
};
amazonS3Client.DeleteBucket(request);
在 S3 中删除存储桶是否有更好的方法 - 我不需要先获取对象。
AWS SDK for .Net 中是否缺少任何方法?
谢谢!