本页面介绍了如何使用对象保全,包括默认情况下将保全放置在新对象上,以及将保全放置在个别对象上。
所需权限
在 Cloud Storage 中使用此功能之前,您必须拥有足够的权限来查看和更新 Cloud Storage 中的存储桶和对象:
如果您拥有存储桶所属的项目,则您很可能具备所需的权限。
如果您使用了 IAM,您应在相关存储桶上具有
storage.buckets.update
、storage.buckets.get
、storage.objects.update
和storage.objects.get
权限。如需了解如何获取具有这些权限的角色(例如 Storage Admin),请参阅使用 IAM 权限。如果使用 ACL,您应对相关存储桶及其中的对象具有 OWNER 权限。如需了解如何执行此操作,请参阅设置 ACL。
使用默认的基于事件的保全属性
以下任务介绍了如何在存储桶上设置和查看基于事件的默认保全属性。启用此属性后,系统会自动在添加到存储桶的新对象上放置基于事件的保全。
设置默认的基于事件的保全属性
要为存储桶启用或停用基于事件的默认保全属性,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到要设置默认的基于事件的保全属性的存储桶,并点击其名称。
选择页面顶部附近的保护标签页。
存储桶的当前状态显示在“基于事件的默认保全选项”部分中。
在“基于事件的默认保全选项”部分中,点击当前状态即可进行更改。
状态显示为已启用或已停用。
如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有相应标志的 gcloud storage buckets update
命令:
gcloud storage buckets update gs://BUCKET_NAME FLAG
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。FLAG
可以为--default-event-based-hold
以启用基于事件的默认对象保全,也可以为--no-default-event-based-hold
以停用它们。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在存储桶上启用基于事件的默认保全:
以下示例在存储桶上停用基于事件的默认保全:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。创建一个包含以下信息的 JSON 文件:
{ "defaultEventBasedHold": STATE }
其中 STATE 为
true
或false
。使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=defaultEventBasedHold"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。
XML API
XML API 不能用于处理对象保全。请改用其他 Cloud Storage 工具,例如 gcloud CLI。
获取存储桶的默认保全状态
要查看默认情况下存储桶是否在新对象上放置基于事件的保全,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到要检查默认的基于事件的状态的存储桶,并点击其名称。
选择页面顶部附近的保护标签页。
状态会显示在“基于事件的默认保全选项”部分中。
如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有 --format
标志的 gcloud storage buckets describe
命令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_event_based_hold)"
其中,BUCKET_NAME
是您要查看其状态的存储桶的名称,例如 my-bucket
。
如果成功,响应类似于以下示例:
default_event_based_hold: true
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过包含所需fields
的GET
Bucket 请求调用 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=defaultEventBasedHold"
其中
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。如果为存储桶启用了默认的基于事件的保全,则响应类似于以下示例:
{ "defaultEventBasedHold": true }
XML API
XML API 不能用于处理对象保全。请改用其他 Cloud Storage 工具,例如 gcloud CLI。
管理个别对象保全
以下任务介绍了如何修改和查看个别对象的保全。
设置或撤消对象保全
如需在存储桶中的对象上设置或撤消保全,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要设置或移除保全的对象的存储桶,然后点击其名称。
选中要添加或移除保全的对象名称旁边的复选框。
点击管理保全按钮。
随即会显示“管理保全”窗口。
根据需要切换每种保全类型的复选框。
点击保存保全设置。
如需了解如何在 Google Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有相应标志的 gcloud storage objects update
命令:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME FLAG
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。OBJECT_NAME
是相关对象的名称,例如pets/dog.png
。FLAG
是以下值之一:--event-based-hold
,用于在对象上启用基于事件的保全。--no-event-based-hold
,用于在对象上停用基于任何事件的保全。--temporary-hold
,用于在对象上启用临时保全。--no-temporary-hold
,用于在对象上停用任何临时保全。
如需详细了解保全类型,请参阅对象保全。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例在对象上设置基于事件的保全:
以下示例撤消对象上基于事件的保全:
以下示例在对象上设置临时保全:
以下示例撤消对象上的临时保全:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。创建一个包含以下信息的 JSON 文件:
{ "HOLD_TYPE": STATE }
其中:
HOLD_TYPE
是您要在对象上设置或撤消的保全类型。例如temporaryHold
或eventBasedHold
。如需详细了解保全类型,请参阅对象保全。STATE
为true
以设置保全,或false
以撤消保全。
使用
cURL
,通过PATCH
Object 请求调用 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。OBJECT_NAME
是相关对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
XML API
XML API 不能用于处理对象保全。请改用其他 Cloud Storage 工具,例如 gcloud CLI。
获取对象的保全状态
要查看对象上存在的保全(如果有),请按照查看对象元数据的一般说明进行操作。