本页面介绍了如何使用存储桶锁定功能,包括使用保留政策以及将其永久地锁定在存储桶上。
准备工作
请确保您已完成以下部分中的步骤,然后才能使用存储桶锁定功能。
获取所需角色
如需获得使用存储桶锁定所需的权限,请让您的管理员为您授予存储桶的 Storage Admin (roles/storage.admin
) 角色。此预定义角色可提供使用存储桶锁定所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.get
storage.buckets.list
- 仅当您计划使用Trusted Cloud 控制台执行本页面上的任务时,才需要此权限。
storage.buckets.update
您也可以使用自定义角色来获取这些权限。
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
在存储桶上设置保留政策
如需在存储桶上添加、修改或移除保留政策,请执行以下操作:
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,点击要更改保留政策的存储桶的名称。
选择页面顶部附近的保护标签页。
在保留政策部分中,设置保留政策:
如果当前没有适用于存储桶的保留政策,请点击 add_box 设置保留政策链接。选择保留期限的时间单位和时长。
如果某个保留政策当前应用于存储桶,它会显示在该部分中。点击修改以修改保留期限,或点击删除以完全移除保留政策。
如需了解Trusted Cloud 控制台如何在不同时间单位之间进行转换,请参阅保留期限。
如需了解如何在 Trusted Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有相应标志的 gcloud storage buckets update
命令:
gcloud storage buckets update gs://BUCKET_NAME FLAG
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。FLAG
是存储桶的保留期限所需的设置。请采用以下某种格式:--retention-period
和保留期限(如果要添加或更改保留政策)。例如--retention-period=1d43200s
。--clear-retention-period
(如果要移除存储桶上的保留政策)。
如果成功,响应将如下所示:
Updating gs://my-bucket/... Completed 1
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
以下示例在存储桶上设置保留政策:
以下示例从存储桶中移除保留政策:
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。创建一个包含以下信息的 JSON 文件:
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS" } }
其中
TIME_IN_SECONDS
是存储桶中的对象必须保留的时长(以秒为单位),例如2678400
。请参阅保留期限,了解系统如何以秒为单位来计量不同的时间单位。要从存储桶中移除保留政策,请在 JSON 文件中使用以下内容:
{ "retentionPolicy": null }
使用
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.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=retentionPolicy"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的 JSON 文件的路径。BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。
XML API
XML API 不能用于在现有存储桶上设置或移除保留政策。它只能用于为新存储桶设置保留政策。
锁定存储桶
要锁定存储桶并永久限制对存储桶保留政策的修改,请执行以下操作:
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,点击要锁定保留政策的存储桶的名称。
选择页面顶部附近的保护标签页。
在保留政策部分,点击锁定按钮。
此时将出现锁定保留政策吗?对话框。
阅读永久说明。
在“存储桶名称”文本框中,键入存储桶的名称。
点击锁定政策。
如需了解如何在 Trusted Cloud 控制台中获取失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
使用带有 --lock-retention-period
标志的 gcloud storage buckets update
命令:
gcloud storage buckets update gs://BUCKET_NAME --lock-retention-period
其中 BUCKET_NAME
是相关存储桶的名称,例如 my-bucket
。
如果成功,响应类似于以下示例:
Updating gs://my-bucket/... Completed 1
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过POST
Bucket 请求调用 JSON API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/lockRetentionPolicy?ifMetagenerationMatch=BUCKET_METAGENERATION_NUMBER"
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。BUCKET_METAGENERATION_NUMBER
是存储桶的 metageneration 值,例如8
。通过GET
Bucket 请求调用 JSON API,您可以找到存储桶的 metageneration 值。
XML API
您不能使用 XML API 来锁定存储桶。 请改用其他 Cloud Storage 工具,例如 Trusted Cloud 控制台。
查看存储桶的保留政策和锁定状态
要查看在存储桶上设置了什么保留政策以及是否该保留政策已锁定,请执行以下操作:
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
点击您要查看其状态的存储桶的名称。
如果存储桶具有保留政策,则保留期限会显示在该存储桶的保护字段中。如果保留政策未锁定,则保留期限旁边会出现一个处于解锁状态的锁形图标。如果保留政策被锁定,则保留期限旁边会出现一个处于锁定状态的锁形图标。
命令行
使用带有 --format
标志的 gcloud storage buckets describe
命令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(retention_policy)"
其中 BUCKET_NAME
是您要查看保留政策的存储桶的名称。例如 my-bucket
。
如果成功并且存储桶存在保留政策,则响应类似于以下内容:
retention_policy: effectiveTime: '2022-10-04T18:51:22.161000+00:00' retentionPeriod: '129600'
如果成功且存储桶不存在保留政策,则响应类似于以下内容:
null
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过包含所需fields
的GET
Bucket 请求调用 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=retentionPolicy"
其中
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。如果存储桶上设置了保留政策,则响应类似于以下示例:
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS", "effectiveTime": "DATETIME", "isLocked": "BOOLEAN" }, }
XML API
XML API 不能用于查看存储桶上的保留政策。请改用其他 Cloud Storage 工具,例如Trusted Cloud 控制台。