Google cloud storage 批量删除云存储对象

Google cloud storage 批量删除云存储对象,google-cloud-storage,Google Cloud Storage,删除许多cloudstorage对象的最佳方法是什么?我有一个包含约500K个对象的桶,我想将它们全部删除 我是否必须为每个要删除的对象发出一个api请求,或者是否有某种批处理方法?我目前正在使用gsutil一次删除一个对象。您需要为每个对象发出一个api请求。实现这一点的最简单方法是: -m选项启用多线程,这将并行删除许多对象。请注意,对于gsutil,“*”通配符将只匹配顶级对象(直到路径名中的下一个“/”。如果要删除所有对象,可以使用: $ gsutil -m rm -R gs://buc

删除许多cloudstorage对象的最佳方法是什么?我有一个包含约500K个对象的桶,我想将它们全部删除


我是否必须为每个要删除的对象发出一个api请求,或者是否有某种批处理方法?我目前正在使用gsutil一次删除一个对象。

您需要为每个对象发出一个api请求。实现这一点的最简单方法是:

-m选项启用多线程,这将并行删除许多对象。

请注意,对于gsutil,“*”通配符将只匹配顶级对象(直到路径名中的下一个“/”。如果要删除所有对象,可以使用:

$ gsutil -m rm -R gs://bucket_with_many_objects


Mike Schwartz,Google云存储团队

我也遇到过类似的问题,一个bucket包含超过800000个对象,gsutil-m rm gs://bucket name方法确实有效,但需要很长时间,因为它基本上仍然是一次删除一个对象

在与谷歌的云存储团队联系后,他们向我指出了bucket生命周期策略的方向,尽管不是即时的,但它们允许您以更高效的方式批量删除对象


我已经用这个方法写了一篇文章。

Hi Mike,您是否计划为java GCS Json api使用批删除方法?否则,我们必须通过使用原始json调用,老实说,这是一种痛苦。或者类似于
$storageService->objects->deleteCollection($condition)仅在一个请求中?感谢您撰写的blob帖子。你可以在那篇文章中加入一些建议:(1)关于你的评论,即rb命令没有提供强制删除bucket及其内容的方法:gsutil rm-r gs://bucket name会这样做。(2) 为了进一步提高速度,您可以在多台机器上运行命令,例如,在机器1上运行“gsutil-m rm-r gs://bucket name/a*”,在机器2上运行“gsutil-m rm-r gs://bucket name/b*”等等。如何划分工作取决于对象的命名方式,但希望您能理解。
$ gsutil -m rm -R gs://bucket_with_many_objects
$ gsutil -m rm gs://bucket_with_many_objects/**