PUT Bucket lifecycle

最近更新时间:2024-06-26 17:27:31

我的收藏

功能描述

COS 支持用户以生命周期配置的方式来管理 Bucket 中 Object 的生命周期。生命周期配置包含一个或多个将应用于一组对象规则的规则集(其中每个规则为 COS 定义一个操作)。 这些操作分为以下两种:
转换操作:定义对象转换为另一个存储类的时间。例如,您可以选择在对象创建30天后将其转换为低频存储(STANDARD_IA,适用于不常访问)存储类别。同时也支持将数据沉降到智能分层存储(INTELLIGENT_TIERING,访问模式不固定)和归档存储(ARCHIVE,成本更低)。具体参数查看请求示例说明中 Transition 项。
过期操作:指定 Object 的过期时间。COS 将会自动为用户删除过期的 Object。


授权说明

授权策略中 action 设置为 cos:PutBucketLifecycle 。查看所有 action

细节分析

PUT Bucket lifecycle 用于为 Bucket 创建一个新的生命周期配置。
注意:
如果该 Bucket 已配置生命周期,使用该接口创建新的配置的同时则会覆盖原有的配置。
同一条生命周期规则中不可同时支持 Days 和 Date 参数,请分成两条规则分别传入,具体请参见下文 实际案例
开启了 多 AZ 配置的存储桶,不支持将多 AZ 存储类型沉降到单 AZ 存储类型。
每个存储桶最多可添加1000条生命周期规则。
基于访问时间(Access Time,Atime)的生命周期规则当前白名单开放,仅支持沉降到低频存储,不兼容 MAZ 存储桶,不支持标签筛选和对象大小筛选,更多限制及说明可参考 基于访问时间的生命周期规则

请求

请求示例

PUT /?lifecycle HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Content-Length: length
Date: GMT Date
Authorization: Auth String
Content-MD5: MD5
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概览 > 基本信息存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参阅 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该 API 接口请求的请求体具体节点内容为:
<LifecycleConfiguration>
<Rule>
<ID></ID>
<Filter>
<And>
<Prefix></Prefix>
<PrefixNotEquals></PrefixNotEquals>
<Tag>
<Key></Key>
<Value></Value>
</Tag>
<ObjectSizeGreaterThan></ObjectSizeGreaterThan>
<ObjectSizeLessThan></ObjectSizeLessThan>
</And>
</Filter>
<Status></Status>
<Transition>
<Days></Days>
<StorageClass></StorageClass>
</Transition>
<NoncurrentVersionExpiration>
<NoncurrentDays></NoncurrentDays>
</NoncurrentVersionExpiration>
</Rule>
<Rule>
<ID></ID>
<Filter>
<Prefix></Prefix>
</Filter>
<Status></Status>
<Transition>
<Days></Days>
<StorageClass></StorageClass>
</Transition>
<NoncurrentVersionTransition>
<NoncurrentDays></NoncurrentDays>
<StorageClass></StorageClass>
</NoncurrentVersionTransition>
</Rule>
<Rule>
<ID></ID>
<Filter>
<Prefix></Prefix>
</Filter>
<Status></Status>
<Expiration>
<ExpiredObjectDeleteMarker></ExpiredObjectDeleteMarker>
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays></NoncurrentDays>
</NoncurrentVersionExpiration>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation></DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
<Rule>
<ID></ID>
<Filter>
<And>
<Prefix></Prefix>
<PrefixNotEquals></PrefixNotEquals>
</And>
</Filter>
<Status></Status>
<Transition>
<AccessFrequency>
<AccessCountLessThan></AccessCountLessThan>
<RecentDays></RecentDays>
</AccessFrequency>
<StorageClass></StorageClass>
</Transition>
<NoncurrentVersionTransition>
<AccessFrequency>
<AccessCountLessThan></AccessCountLessThan>
<RecentDays></RecentDays>
</AccessFrequency>
<StorageClass></StorageClass>
</NoncurrentVersionTransition>
</Rule>
</LifecycleConfiguration>

具体内容描述如下:
节点名称(关键字)
父节点
描述
类型
是否必选
LifecycleConfiguration
生命周期配置
Container
Rule
LifecycleConfiguration
规则描述
Container
ID
LifecycleConfiguration.Rule
用于唯一地标识规则,长度不能超过255个字符
String
Filter
LifecycleConfiguration.Rule
Filter 用于描述规则影响的 Object 集合
Container
And
LifecycleConfiguration.Rule
.Filter
对象筛选器中的一个子集,仅当需要指定多种筛选规则时才需要
此元素,例如:同时指定 Prefix 和 Tag 筛选,或同时指定多个 Tag 筛选。
Container
Prefix
LifecycleConfiguration.Rule
.Filter.And
指定规则所适用的前缀。匹配前缀的对象受该规则影响,Prefix 最多只能有一个
String
PrefixNotEquals
LifecycleConfiguration.Rule.Filter.And
筛选 Prefix 不匹配该字符串的 Objects。PrefixNotEquals 最多只能有一个,且覆盖范围是 Prefix 的子集。
String
ObjectSizeGreaterThan
LifecycleConfiguration.Rule .Filter.And
筛选条件,指定规则所适用的对象的大小必须大于某值(不包括等于),单位为 Bytes。
注意:
ObjectSizeGreaterThan 的值必须大于等于65536。
Integer
ObjectSizeLessThan
LifecycleConfiguration.Rule .Filter.And
筛选条件,指定规则所适用的对象必须小于某值(不包括等于),单位为 Bytes。
注意:
ObjectSizeLessThan 的值必须大于等于65537。
ObjectSizeLessThan 的值必须大于ObjectSizeGreaterThan。
Integer
Tag
LifecycleConfiguration.Rule
.Filter.And
标签集合,最多支持10个标签
Container
Key
LifecycleConfiguration.Rule
.Filter.And.Tag
标签的 Key,长度不超过128字节,支持英文字母、数字、空格、加号、
减号、下划线、等号、点号、冒号、斜线
String
Value
LifecycleConfiguration.Rule
.Filter.And.Tag
标签的 Value,长度不超过256字节, 支持英文字母、数字、空格、加号、
减号、下划线、等号、点号、冒号、斜线
String
Status
LifecycleConfiguration.Rule
指明规则是否启用,枚举值:Enabled,Disabled
String
Expiration
LifecycleConfiguration.Rule
规则过期属性
Container
Transition
LifecycleConfiguration.Rule
规则转换属性,用于描述对象何时进行存储类型的转换和转换的存储类型
Container
Days
LifecycleConfiguration.Rule
.Transition 或 Expiration
指明规则对应的动作在对象最后的修改日期过后多少天操作:
如果是 Transition,该字段有效值是非负整数
如果是 Expiration,该字段有效值为正整数,最大支持3650天
Integer
AccessFrequency
Transition或NoncurrentVersionTransition
指定基于访问时间的生命周期规则。配置此字段后,不支持配置最后修改时间相关的字段(Days 和 NocurrentDays)。
说明:
基于访问时间的生命周期规则,详情请参见 基于访问时间的生命周期规则
Container
RecentDays
AccessFrequency
连续X天访问次数小于N次,则尘沉降对象。配置此字段后,不支持配置最后修改时间相关的字段(Days 和 NocurrentDays)该参数表示X,该数值不的超过3650。
Integer
AccessCountLessThan
AccessFrequency
整数值N,默认值为1,表示连续多天,访问次数小于N次,则执行沉降。配置此字段后,不支持配置最后修改时间相关的字段(Days 和 NocurrentDays)。
Container
DaysAfterInitiation
LifecycleConfiguration.Rule
.AbortIncompleteMultipartUpload
指明分片上传开始后多少天内必须完成上传
Integer
NoncurrentVersionExpiration
LifecycleConfiguration.Rule
指明非当前版本对象何时过期
Container
NoncurrentVersionTransition
LifecycleConfiguration.Rule
指明非当前版本对象何时进行存储类型的转换和转换的存储类型
Container
NoncurrentDays
LifecycleConfiguration.Rule
.NoncurrentVersionExpiration
或NoncurrentVersionTransition
指明规则对应的动作在对象变成非当前版本多少天后执行
如果是 Transition,该字段有效值是非负整数
如果是 Expiration,该字段有效值为正整数,最大支持3650天
Integer
StorageClass
LifecycleConfiguration.Rule
Transition 或
NoncurrentVersionTransition
指定 Object 沉降后的存储类型,枚举值: STANDARD_IA,MAZ_STANDARD_IA,INTELLIGENT_TIERING,MAZ_INTELLIGENT_TIERING,ARCHIVE,DEEP_ARCHIVE。关于存储类型的介绍,请参见 存储类型概述
String

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体为空。

错误码

此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

实际案例

案例一:基于最后修改时间沉降对象

请求

PUT /?lifecycle HTTP/1.1
Host:examplebucket-1250000000.cos.ap-beijing.myqcloud.com
Date: Wed, 16 Aug 2017 11:59:33 GMT
Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1502855771;1502935771&q-key-time=1502855771;1502935771&q-header-list=content-md5;host&q-url-param-list=lifecycle&q-signature=f3aa2c708cfd8d4d36d658de56973c9cf1c2****
Content-MD5: LcNUuow8OSZMrEDnvndw1Q==
Content-Length: 348
Content-Type: application/x-www-form-urlencoded

<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter>
<Prefix>documents/</Prefix>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>100</Days>
<StorageClass>ARCHIVE</StorageClass>
</Transition>
</Rule>
<Rule>
<ID>id2</ID>
<Filter>
<Prefix>logs/</Prefix>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>10</Days>
<StorageClass>STANDARD_IA</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Wed, 16 Aug 2017 11:59:33 GMT
Server: tencent-cos
x-cos-request-id: NTk5NDMzYTRfMjQ4OGY3Xzc3NGRf****

案例二:基于访问时间沉降对象

请求

PUT /?lifecycle HTTP/1.1
Host:examplebucket-1250000000.cos.ap-beijing.myqcloud.com
Date: Wed, 16 Aug 2020 11:59:33 GMT
Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1502855771;1502935771&q-key-time=1502855771;1502935771&q-header-list=content-md5;host&q-url-param-list=lifecycle&q-signature=f3aa2c708cfd8d4d36d658de56973c9cf1c2****
Content-MD5: LcNUuow8OSZMrEDnvndw1Q==
Content-Length: 348
Content-Type: application/x-www-form-urlencoded

<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter>
<Prefix>documents/</Prefix>
</Filter>
<Status>Enabled</Status>
<Transition>
<AccessFrequency>
<AccessCountLessThan>2</AccessCountLessThan>
<RecentDays>7</RecentDays>
</AccessFrequency>
<StorageClass></StorageClass>
</Transition>
<NoncurrentVersionTransition>
<AccessFrequency>
<AccessCountLessThan>2</AccessCountLessThan>
<RecentDays>7</RecentDays>
</AccessFrequency>
<StorageClass></StorageClass>
</NoncurrentVersionTransition>
</Rule>
</LifecycleConfiguration>

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Wed, 16 Aug 2020 11:59:33 GMT
Server: tencent-cos
x-cos-request-id: NTk5NDMzYTRfMjQ4OGY3Xzc3NGRf****