S3バケットを削除するためのより良い方法を探しています。
AWS SDK for .Netは、空でないバケットを削除することを許可せず、バケット内の子オブジェクトを削除するため
のオーバーロードもありません。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に欠けているメソッドはありますか?
ありがとうございました!