【问题标题】:How to delete objects with gsutils following a wildcard pattern?如何按照通配符模式使用 gsutils 删除对象?
【发布时间】:2022-06-13 22:23:28
【问题描述】:

我们可以运行gsutils command 来删除对象,如下所示:

gsutil rm -a gs://bucket/**

现在我只想删除遵循通配符模式的某些文件夹:

gs://bucket/folder/{WILDCARD-A}/folderA/{WILDCARD-B}/folderB

想法是删除目标文件夹B的所有文件。

如何使用 gsutils 实现这一点?

【问题讨论】:

  • 您是否尝试过 gsutil rm -r gs://bucket/folder/{WILDCARD-A}/folderA/{WILDCARD-B}/folderB 应用您的 wildcat patterns?如果要批量删除十万个或更多对象,请避免使用gsutil,因为该过程需要很长时间才能完成。
  • 删除对象的替代方法是什么?
  • @JohnAndrews 根据您原始问题的上下文,该特定查询将需要根据 Stack Overflow 规则发布新问题。
  • (@OsvaldoLópez: wildcat?)
  • 我投票结束这个问题,因为它不是一个编程问题——请阅读google-cloud-storage的标签wiki

标签: cmd google-cloud-storage gsutil


【解决方案1】:

尝试gsutil rm -r gs://bucket/folder/{WILDCARD-A}/folderA/{WILDCARD-B}/folderB 应用您的wildcard patterns。如果要删除大量对象,请使用gsutil -m 选项,该选项启用多线程/多处理。如果您需要bulk delete 十万或更多对象,请避免使用gsutil,因为该过程需要很长时间才能完成。请改用 Google Cloud 控制台,它最多可以删除几百万个对象,或者使用Object Lifecycle Management,它可以删除任意数量的对象。

【讨论】:

  • 这个答案有用吗?
  • 这解决了它。基本上,我将 * 放在模式中需要通配符的每个地方。您提供的链接中也有一些关于性能的说明。
猜你喜欢
  • 1970-01-01
  • 2016-02-22
  • 2020-04-15
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 2019-03-03
相关资源
最近更新 更多