Google cloud storage Gsutil rm不会删除所有内容

Google cloud storage Gsutil rm不会删除所有内容,google-cloud-storage,gsutil,Google Cloud Storage,Gsutil,我的一个自动化工作有问题。 在启动一个云数据流作业之前,我对以前的文件执行了一个gsutil rm,但它似乎并没有删除所有内容,因为当我启动另一个数据流作业时,会保留一些旧的碎片 我试过: gsutil -m rm gs://mybucket/blahblah/* 及 但同样的结果 奇怪的是,未删除的文件既不是第一个也不是最后一个。 我认为这是我的第二个工作失误,但事实是,我在日志中看到文件确实没有被删除 是否有可能有太多的文件要删除? 是否存在已知的gsutil rm可靠性问题 我使用的是

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

我试过:

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

但同样的结果

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

是否有可能有太多的文件要删除? 是否存在已知的gsutil rm可靠性问题

我使用的是谷歌云sdk的0.9.80版


谢谢

您正在使用的gsutil rm命令依赖于在bucket中列出对象,这是Google云存储中最终一致的操作。因此,在写入对象后不久在bucket中尝试这些命令可能不会删除所有对象。如果你以后再试一次,它就会成功

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

xargs gsutil -m rm < objects.manifest
xargs gsutil-m rm
gsutil rm还支持-I标志,该标志接受stdin上的对象列表。Travis的答案更好,因为它可以在任何操作系统(包括Windows)上使用。
xargs gsutil -m rm < objects.manifest