删除gcs冗余gcs存储桶

时间:2020-11-09 09:37:33

标签: google-cloud-platform google-cloud-storage gcloud gsutil

我正在尝试清理我的GCS存储,该存储具有每天创建的3年以上的冗余存储桶。因为不再需要其中的几个。我正在尝试喜欢

gsutil -l | grep 'gs://bucket-name-.*' | gsutil rb -f

这是正确的方法吗?

2 个答案:

答案 0 :(得分:2)

gsutil rb command用于删除存储桶,尽管要求存储桶为空才能成功删除。

要删除存储桶及其所有内容,请将gsutil rm command-r选项一起使用。在存储桶上运行gsutil rm -r将删除存储桶中所有对象的所有版本,然后删除存储桶:

gsutil rm -r gs://bucket

还要注意,要删除存储桶中的大量对象,使用gsutil需要很长时间才能完成。建议使用Cloud Console。 您可以在Deleting Best Practices文档中找到更多详细信息。

希望这对您有所帮助。

答案 1 :(得分:0)

假设您的存储桶为空,则rb标志将可以删除存储桶,并且您需要使用ls标志列出与您的项目关联的存储桶(我假设-我的旗帜是错字)。

请注意,如果存储桶中仍然有对象,则需要重新使用gsutil rm -r gs://BUCKET_NAME,因为使用rb标志需要清空存储桶。

您的脚本缺少将存储桶名称传递给gsutil rb -f命令的方法。例如。假设您有一个名为gs://my-cool-bucket的存储桶,以下命令将反映您要实现的目标(考虑到my-cool-bucket不为空):

gsutil ls | grep 'gs://my-cool-bucket' | xargs gsutil rm -r

如果您有兴趣探索使用bash传递命令时将上一个命令的输出作为下一个命令的参数传递给下一个命令的其他方法,则社区中的以下post会很有用。

在使用自动化删除存储桶和存储桶中的对象时要非常小心,因为删除后对象和存储桶均无法恢复。如果要删除具有大量对象的存储桶,建议使用Cloud Console而不是使用gsutil或任何自动化源。