本页面介绍了如何启用对象生命周期管理并提供了生命周期配置的示例。生命周期配置是在存储分区级层进行管理的,并适用于存储分区中的所有当前和未来的对象。
在存储分区上设置生命周期管理
启用生命周期管理
如需为存储分区启用生命周期管理,请执行以下操作:
控制台
- 在 Google Cloud Console 中打开 Cloud Storage 浏览器。
打开 Cloud Storage 浏览器 在存储分区列表中,找到要启用的存储分区,然后点击存储分区的名称。
点击生命周期标签页。
随即将显示生命周期规则页面。
点击添加规则。
在出现的页面中,指定配置。
请参阅问题排查,了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息。
gsutil
使用
lifecycle set
命令应用配置:gsutil lifecycle set LIFECYCLE_CONFIG_FILE gs://BUCKET_NAME
其中:
LIFECYCLE_CONFIG_FILE
是您在第 1 步中创建的文件的名称。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @LIFECYCLE_CONFIG_FILE.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"
其中:
LIFECYCLE_CONFIG_FILE
是您在第 2 步中创建的文件的名称。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
XML API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过PUT
Bucket 请求调用 XML API:curl -X PUT --data-binary @XML_FILE.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?lifecycle"
其中:
XML_FILE
是您在第 2 步中创建的文件的名称。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
停用生命周期管理
如需为存储分区停用生命周期管理,请执行以下操作:
控制台
- 在 Google Cloud Console 中打开 Cloud Storage 浏览器。
打开 Cloud Storage 浏览器 在存储分区列表中,找到要停用的存储分区,然后点击生命周期规则列中的条目。
随即将显示生命周期规则页面。
点击全部删除。
在出现的确认窗口中,点击确认。
请参阅问题排查,了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息。
gsutil
创建具有空生命周期配置的
.json
文件:{ "lifecycle": { "rule": [] } }
使用
lifecycle set
命令:gsutil lifecycle set LIFECYCLE_CONFIG_FILE gs://BUCKET_NAME
其中:
LIFECYCLE_CONFIG_FILE
是您在第 1 步中创建的文件的名称。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
创建具有空生命周期配置的
.json
文件:{ "lifecycle": { "rule": [] } }
使用
cURL
,通过PATCH
Bucket 请求调用 JSON API:curl -X PATCH --data-binary @LIFECYCLE_CONFIG_FILE.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"
其中:
LIFECYCLE_CONFIG_FILE
是您在第 2 步中创建的文件的名称。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
XML API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
创建具有空生命周期配置的
.xml
文件:<LifecycleConfiguration/>
使用
cURL
,通过PUT
Bucket 请求调用 XML API:curl -X PUT --data-binary @XML_FILE.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?lifecycle"
其中:
XML_FILE
是您在第 2 步中创建的文件的名称。OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
检查生命周期配置
如需检查对存储分区设置的生命周期配置,请执行以下操作:
控制台
- 在 Google Cloud Console 中打开 Cloud Storage 浏览器。
打开 Cloud Storage 浏览器 在存储分区列表中,您可以在生命周期列中看到每个存储分区的生命周期状态。
您可以点击此状态以添加、查看、修改和删除规则。
请参阅问题排查,了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息。
gsutil
使用
lifecycle get
命令:gsutil lifecycle get gs://BUCKET_NAME
其中
BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需查看存储分区的生命周期政策,请按照显示存储分区的元数据中的说明操作,并在响应中查找生命周期政策字段。REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过GET
Bucket 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
XML API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过GET
Bucket 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?lifecycle"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是相关存储分区的名称,例如my-bucket
。
对象生命周期配置示例
以下示例展示了特定的生命周期配置,该配置可在满足通用生命周期条件时执行生命周期操作。 这些配置适用于所配置存储分区中的所有当前和未来的对象。
删除对象
以下生命周期配置定义了三条规则。请注意,只有在存储分区上使用对象版本控制机制时,第二条和第三条规则才适用:
删除存在时间超过 30 天的有效版本对象。
如果存储分区使用对象版本控制机制,则此类对象将变为非当前对象,并受其他两条规则约束。
如果存储分区不使用对象版本控制机制,则此类对象将被永久删除并且无法恢复。
如果存储分区中有 2 个较新版本的对象,请删除对象的非当前版本。受此规则约束的对象将被永久删除并且无法恢复。
删除存在时间超过 35 天的非当前版本对象。受此规则约束的对象将被永久删除并且无法恢复。
这三条规则的组合效果是,对象在存储分区中最多保留 35 天(有效版本保留 30 天,非当前版本保留 5 天)后将被永久删除。对于在此配置范围之外被替换或删除的有效对象版本,它们将更快地被永久删除:在变为非当前版本 5 天后被永久删除,或者在存储分区中的较新版本对象超过一个时被永久删除。
控制台
这里的设置遵循了启用部分中的说明。
如需删除存在时间超过 30 天的有效版本对象,请执行以下操作:
- 选择删除对象操作。
- 选择存在时间条件,然后输入值 30。
- 选择有效状态条件,然后选择有效选项。
如需在已有 2 个较新版本的情况下删除非当前版本对象,请执行以下操作:
- 选择删除对象操作。
- 选择较新版本的数量条件,然后输入值 2。
如需删除存在时间超过 35 天的非当前版本对象,请执行以下操作:
- 选择删除对象操作。
- 选择存在时间条件,然后输入值 35。
- 选择有效状态条件,然后选择非当前选项。
gsutil
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
{ "lifecycle": { "rule": [ { "action": {"type": "Delete"}, "condition": { "age": 30, "isLive": true } }, { "action": {"type": "Delete"}, "condition": { "numNewerVersions": 2 } }, { "action": {"type": "Delete"}, "condition": { "age": 35, "isLive": false } } ] } }
如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储分区资源表示法。
REST API
JSON API
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
{ "lifecycle": { "rule": [ { "action": {"type": "Delete"}, "condition": { "age": 30, "isLive": true } }, { "action": {"type": "Delete"}, "condition": { "numNewerVersions": 2 } }, { "action": {"type": "Delete"}, "condition": { "age": 35, "isLive": false } } ] } }
如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储分区资源表示法。
XML API
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
<?xml version="1.0" encoding="UTF-8" ?> <LifecycleConfiguration> <Rule> <Action> <Delete/> </Action> <Condition> <IsLive>true</IsLive> <Age>30</Age> </Condition> </Rule> <Rule> <Action> <Delete/> </Action> <Condition> <NumberOfNewerVersions>2</Age> </Condition> </Rule> <Rule> <Action> <Delete/> </Action> <Condition> <IsLive>false</IsLive> <Age>35</Age> </Condition> </Rule> </LifecycleConfiguration>
如需了解生命周期配置文件的通用格式,请参阅适用于 XML 的生命周期配置格式。
更改对象的存储类别
以下生命周期配置定义了两条规则:
- 如果对象的存在时间超过 365 天(一年)且其当前存储类别为 Standard 存储空间、Multi-Regional 存储空间或 Durable Reduced Availability (DRA) 存储空间,则将该对象的存储类别更改为 Nearline 存储空间。
- 如果对象的存储类别的存在时间大于 1095 天(三年)且其当前存储类别为 Nearline 存储空间,则将其更改为 Coldline 存储空间。
控制台
这里的设置遵循了启用部分中的说明。
如需在创建对象 365 天后将对象移动到 Cloud Storage Nearline,请执行以下操作:
- 选择将存储类别设置为 Nearline 操作。
- 选择存在时间条件,然后输入值 365。
- 选择存储类别符合条件,然后选择 Standard、Multi-Regional、Durable Reduced Availability 选项。
如需在创建对象 1095 天后将对象移动到 Cloud Storage Coldline,请执行以下操作:
- 选择将存储类别设置为 Coldline 操作。
- 选择存在时间条件,然后输入值 1095。
- 选择存储类别符合条件,然后选择 Nearline 选项。
gsutil
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
{ "lifecycle": { "rule": [ { "action": { "type": "SetStorageClass", "storageClass": "NEARLINE" }, "condition": { "age": 365, "matchesStorageClass": ["MULTI_REGIONAL", "STANDARD", "DURABLE_REDUCED_AVAILABILITY"] } }, { "action": { "type": "SetStorageClass", "storageClass": "COLDLINE" }, "condition": { "age": 1095, "matchesStorageClass": ["NEARLINE"] } } ] } }
如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储分区资源表示法。
REST API
JSON API
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
{ "lifecycle": { "rule": [ { "action": { "type": "SetStorageClass", "storageClass": "NEARLINE" }, "condition": { "age": 365, "matchesStorageClass": ["MULTI_REGIONAL", "STANDARD", "DURABLE_REDUCED_AVAILABILITY"] } }, { "action": { "type": "SetStorageClass", "storageClass": "COLDLINE" }, "condition": { "age": 1095, "matchesStorageClass": ["NEARLINE"] } } ] } }
如需了解生命周期配置文件的通用格式,请参阅适用于 JSON 的存储分区资源表示法。
XML API
通过启用生命周期管理,可以将以下生命周期配置应用于存储分区。
<?xml version="1.0" encoding="UTF-8" ?> <LifecycleConfiguration> <Rule> <Action> <SetStorageClass>NEARLINE</SetStorageClass> </Action> <Condition> <Age>365</Age> <MatchesStorageClass>MULTI_REGIONAL</MatchesStorageClass> <MatchesStorageClass>STANDARD</MatchesStorageClass> <MatchesStorageClass>DURABLE_REDUCED_AVAILABILITY</MatchesStorageClass> </Condition> </Rule> <Rule> <Action> <SetStorageClass>COLDLINE</SetStorageClass> </Action> <Condition> <Age>1095</Age> <MatchesStorageClass>NEARLINE</MatchesStorageClass> </Condition> </Rule> </LifecycleConfiguration>
如需了解生命周期配置文件的通用格式,请参阅适用于 XML 的生命周期配置格式。
后续步骤
- 详细了解对象生命周期管理,包括可用的生命周期操作和生命周期条件。