如何防止删除Google Cloud Storage Bucket中的某个文件夹?

问题描述

我正在通过Gitlab CI将某些文件部署到Google Cloud中的存储桶。我用来删除对象的命令是gsutil -m rm gs://pr.homefront.com

该命令将删除存储桶中的所有内容,但我希望将其更改为每次运行命令时仍删除该存储桶中名为“ ibw”的文件夹以外的所有内容

解决方法

您可以在文件夹中的对象中添加temporary holds,这样可以防止对该对象进行操作或删除

您可以通过以下gsutil命令应用保全:

gsutil -m  retention temp set  gs://bucketname/ibw/*******

* 每个星号都是文件夹级别

您可以在rm命令之前设置保全,而在rm命令之后取消设置保全。在取消保留之前,无法修改或删除对象

更新:

可以将保全添加到空文件夹

  1. 我通过Cloud Console创建了一个空文件夹
  2. 我运行以下命令以避免删除空文件夹
#this block the empty folder,if this is an folder with files all files will be blocked
gsutil -m  retention temp set  gs://bucketname/ibw/*******

#this operation can't remove objects,and empty folders with holds
gsutil -m rm gs://bucketname

#remove the hold of the empty folder,if this is an folder with files all files will be released
gsutil -m  retention temp release  gs://bucketname/ibw/*******