从 GCS 中删除许多斑点的最快方法是什么?

问题描述 投票:0回答:3

我有一个包含数百万个 blob 的存储桶,我想删除它们,但我不能简单地删除该存储桶。这是我想出的在尽可能快的时间内删除数百万个斑点的最佳方法:

gsutil ls gs://bucket/path/to/dir/ | xargs gsutil -m rm -r

对于我想做的事情(涉及删除大约 3000 万个斑点),它仍然需要很多小时才能运行,我猜部分原因是它受我的宽带连接速度的影响。

有人知道实现这一目标的更快方法吗?我有点希望这是一个瞬时操作,因为在后端,该位置可以简单地标记为已删除 - 显然不是。

google-cloud-storage
3个回答
0
投票

Google 建议使用控制台来执行此操作

Cloud Console 最多可以批量删除数百万个对象,并在后台执行此操作。 Cloud Console 还可用于仅批量删除那些共享公共前缀的对象,这些对象在使用 Cloud Console 时显示为文件夹的一部分。

https://cloud.google.com/storage/docs/best-practices#deleting

也就是说(个人观点)使用控制台可能会更快,但你不知道它能走多远。至少你知道 cli 选项。


0
投票

另一种选择是使用生命周期管理根据规则进行删除:

批量删除对象

如果要批量删除十万个或更多对象,请避免 使用

gsutil
,因为该过程需要很长时间才能完成。反而, 使用 Google Cloud 控制台,最多可删除数百万个 对象,或对象生命周期管理,可以删除任意数量 对象。

使用对象生命周期批量删除存储桶中的对象 管理,在您的存储桶上设置生命周期配置规则,其中 条件已设置为

Age
天,操作设置为
0

来自:
https://cloud.google.com/storage/docs/deleting-objects#delete-objects-in-bulk

但是,如果你很着急,这将不起作用:

添加或编辑规则后,最长可能需要 24 小时才能生效。


0
投票
最多100个

文件。 delete

这可能不是快速删除数百万个文件的快速解决方案,但可以灵活地从存储桶中删除随机链接。

© www.soinside.com 2019 - 2024. All rights reserved.