删除许多cloudstorage对象的最佳方法是什么?我有一个包含~500K对象的存储桶,我想将它们全部删除。
您是否必须为我要删除的每个对象发出1 api请求,或者是否存在某种批处理方法?我目前正在使用gsutil一次删除一个。
答案 0 :(得分:5)
您需要为每个对象发出1 api请求。实现这一目标的最简单方法是使用gsutil:
$ gsutil -m rm gs://bucket_with_many_objects/**
-m选项启用多线程,这将并行删除许多对象。
答案 1 :(得分:2)
请注意,使用gsutil时,“*”通配符仅匹配顶级对象(直到路径名中的下一个“/”)。如果要删除所有可以使用的对象:
$ gsutil -m rm -R gs://bucket_with_many_objects
或
$ gsutil -m rm gs://bucket_with_many_objects/**
Mike Schwartz,谷歌云存储团队
答案 2 :(得分:1)
我有一个类似的问题,一个包含超过800,000个对象的存储桶, gsutil -m rm gs://存储桶名称方法确实有效,但需要很长时间,因为它基本上仍然存在一次删除一个对象。
在与Google云端存储团队联系后,他们向我指出了存储桶生命周期策略的方向,虽然不是即时的,但它们允许您以更有效的方式批量删除对象。
我使用此方法编写了blog post on Deleting Full Buckets。