Gsutil rm 不会删除所有内容

Gsutil rm does not remove everything

我的一项自动化作业有问题。 在启动云数据流作业之前,我对以前的文件执行了 gsutil rm 但它似乎并没有删除所有内容,因为当我启动另一个数据流作业时,一些旧的碎片仍然存在。

我试过了:

gsutil -m rm gs://mybucket/blahblah/* 

gsutil rm -r gs://mybucket/blablah

但结果相同...

奇怪的是,没有删除的文件既不是第一个也不是最后一个。 我认为这是我的第二个工作失误,但事实是我在日志中看到文件确实没有被 gsutil 删除。

会不会是文件太多需要删除? gsutil rm 可靠性是否存在已知问题?

我使用 google cloud sdk

0.9.80 版本

谢谢

您使用的 gsutil rm 命令取决于列出存储桶中的对象,这是 Google 云存储中的最终一致操作。因此,在写入对象后立即在存储桶中尝试这些命令可能不会删除所有对象。如果您稍后再试,应该会成功。

避免此问题的一种方法是跟踪您上传的对象的名称,并在 gsutil rm 命令中明确列出这些对象。例如,如果您将对象列表保存在文件 objects.manifest 中,您可以 运行 在 Linux 或 MacOS 上执行这样的命令:

xargs gsutil -m rm < objects.manifest