我使用下面的boto3代码(源代码链接)来清空存储桶,但是这需要很长的时间,因为存储桶有大量的版本对象要删除。
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('bucket-name')
bucket.object_versions.delete()
上面的代码正在运行,但需要将近一天的时间才能清空它。
有办法更快地清空它吗?
发布于 2021-12-23 13:51:14
如果您需要同步执行--您需要知道程序完成时桶是空的--那么加速它的唯一方法是在多个线程/进程之间分散工作。我将有一个主线程,它获取对象的列表,然后使用concurrent.futures
包对列表中的每个对象分配一个delete。
请注意,您是对从客户端程序调用的所有操作收取费用。
如果您可以异步删除--在几天的时间内--那么最好的解决方案是生命周期规则。这完全发生在S3中,您不需要为单个删除收取费用。
https://stackoverflow.com/questions/70462257
复制相似问题