快速删除 GCS 存储桶上的大文件夹的方法

Fast way to delete big folder on GCS bucket

我有一个非常大的 GCS 存储桶(几 TB),有几个子目录,每个子目录都有几个 TB 的数据。

我想删除其中一些文件夹。

我尝试使用云 Shell 中的 gsutil,但这需要很长时间。

作为参考,这是我正在使用的命令:

gsutil -m rm -r "gs://BUCKET_NAME/FOLDER"

我正在查看 ,我想也许我可以使用它,但它似乎无法按文件夹名称进行过滤,而且我也无法按任何其他内容进行过滤,因为文件夹有一些混合内容。

到目前为止,我最后的办法是等到我要删除的文件夹 "old",然后相应地设置生命周期规则,但这可能需要很长时间。

还有其他方法可以加快速度吗?

只是需要很长时间;您必须为前缀为 FOLDER/.

的每个对象发出 DELETE 请求

GCS 没有"folders" 的概念。对象名称可以共享一个公共前缀,但它们都在一个平面命名空间中。例如,如果您有这三个对象:

  • /a/b/c/1.txt
  • /a/b/c/2.txt
  • /a/b/c/3.txt

...那么您实际上并没有名为 abc 的文件夹。删除这三个对象后,当您在存储桶中列出对象时,"folders"(即它们共享的前缀)将不再出现。

有关详细信息,请参阅文档:

https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork