【问题标题】:Gsutil rm does not remove everythingGsutil rm 不会删除所有内容
【发布时间】:2017-02-11 03:22:17
【问题描述】:

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

我试过了:

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

gsutil rm -r gs://mybucket/blablah

但结果相同...

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

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

我使用的是 google cloud sdk 0.9.80 版本

谢谢

【问题讨论】:

    标签: google-cloud-storage gsutil


    【解决方案1】:

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

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

    xargs gsutil -m rm < objects.manifest
    

    【讨论】:

    • gsutil rm 还支持 -I 标志,它接受标准输入上的对象列表。
    • Travis 的回答更好,因为它可以在任何操作系统(包括 Windows)上使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2017-09-30
    • 2021-06-30
    • 2012-10-24
    • 2017-07-29
    相关资源
    最近更新 更多