我正在考虑删除,然后重新创建桶(糟糕的选项,我后来意识到)。
那么如何从桶中删除所有对象呢?
我试过这个:对象
但是它删除了多个对象,而不是全部。
你能建议一下怎样才是最好的空桶方法吗?
发布于 2017-04-10 16:39:34
只需使用aws cli。
aws s3 rm s3://mybucket --recursive如果您坚持使用boto3,则需要更长的答案。这将向s3发送一个删除标记。不需要文件夹处理。bucket.Object.all将创建一个不限于1K的迭代器。
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('my-bucket')
# suggested by Jordon Philips
bucket.objects.all().delete()发布于 2019-03-27 16:53:49
如果启用了版本控制,将有一个类似的调用来删除所有对象版本:
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
bucket.object_versions.delete()发布于 2021-05-31 21:17:24
根据以前的响应,并添加启用版本控制检查,可以在启用或不启用版本的情况下清空桶:
s3 = boto3.resource('s3')
s3_bucket = s3.Bucket(bucket_name)
bucket_versioning = s3.BucketVersioning(bucket_name)
if bucket_versioning.status == 'Enabled':
s3_bucket.object_versions.delete()
else:
s3_bucket.objects.all().delete()https://stackoverflow.com/questions/43326493
复制相似问题