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