设置桶的生命周期配置
功能介绍
您可以通过设置生命周期规则来管理对象的生命周期,例如定期将桶中的对象删除或者转换对象的存储类别。生命周期规则详情请参见生命周期。
请求消息样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
PUT /?lifecycle HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Content-Length: length
Date: date
Authorization: authorization
Content-MD5: MD5
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
<Rule>
<ID>id</ID>
<Filter>
<And>
<Prefix>prefix</Prefix>
<Tag><Key>key1</Key><Value>value1</Value></Tag>
<Tag><Key>key2</Key><Value>value2</Value></Tag>
</And>
</Filter>
<Status>status</Status>
<Expiration>
<Days>days</Days>
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays>days</NoncurrentDays>
</NoncurrentVersionExpiration>
<Transition>
<Days>30</Days>
<StorageClass>WARM</StorageClass>
</Transition>
<Transition>
<Days>60</Days>
<StorageClass>COLD</StorageClass>
</Transition>
<NoncurrentVersionTransition>
<NoncurrentDays>30</NoncurrentDays>
<StorageClass>WARM</StorageClass>
</NoncurrentVersionTransition>
<NoncurrentVersionTransition>
<NoncurrentDays>60</NoncurrentDays>
<StorageClass>COLD</StorageClass>
</NoncurrentVersionTransition>
</Rule>
</LifecycleConfiguration>
|
请求消息参数
该请求消息中不使用消息参数。
请求消息头
该请求使用的消息头如下表1所示。
请求消息元素
在此请求中,需要在请求的消息体中配置桶的生命周期配置信息。配置信息以XML格式上传,具体的配置元素如表2描述。配置元素更详细规则可参见生命周期元素说明。
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
LifecycleConfiguration |
是 |
XML |
参数解释: 生命周期配置规则。可以配置多条规则,LifecycleConfiguration是Rule的父节点。 约束限制: 整个配置消息体总大小不超过20KB。 取值范围: 不涉及 默认取值: 不涉及 |
Rule |
是 |
XML |
参数解释: 具体某一条生命周期配置。 约束限制: 不涉及 取值范围: 请详见Rule参数说明。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Transition |
如果没有NoncurrentVersionTransition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选 |
XML |
参数解释: 生命周期配置中表示转换时间和转换后对象存储级别的元素。 约束限制: 仅针对对象的最新版本。 取值范围: 请详见Transition参数说明。 默认取值: 不涉及 |
Expiration |
如果没有Transition, NoncurrentVersionTransition, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选 |
XML |
参数解释: 在生命周期配置中表示过期时间。 约束限制: 仅针对对象的最新版本。 取值范围: 请详见Expiration参数说明。 默认取值: 不涉及 |
NoncurrentVersionTransition |
如果没有Transition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选 |
XML |
参数解释: 生命周期配置中表示转换时间和转换后对象存储级别的元素。 约束限制: 仅针对对象的历史版本。 取值范围: 请详见NoncurrentVersionTransition参数说明。 默认取值: 不涉及 |
NoncurrentVersionExpiration |
否 |
XML |
参数解释: 在生命周期配置中表示历史版本的过期时间。您可以将该动作设置在已启用多版本(或暂停)的桶,让系统删除对象的满足特定生命周期的历史版本。 约束限制: 仅针对历史版本。 取值范围: 请详见NoncurrentVersionExpiration参数说明 默认取值: 不涉及 |
AbortIncompleteMultipartUpload |
如果没有Transition, Expiration, NoncurrentVersionExpiration, NoncurrentVersionTransition则必选 |
XML |
参数解释: 未合并的多段任务(碎片)的过期属性。 约束限制: 不支持基于标签(Tag)的筛选条件。 取值范围: 请详见AbortIncompleteMultipartUpload参数说明。 默认取值: 不涉及 |
Filter |
Rule的同级子节点,可以是Filter或者Prefix,二者只能选其一,不能同时出现。但是Prefix可以作为Filter的子节点。 |
XML |
参数解释: 指定具体的匹配规则,生命周期将应用于桶内匹配到的对象。可以按照对象名前缀、对象标签或者二者的组合筛选对象。 约束限制: Filter中如果包含多个筛选条件,需要使用逻辑AND组合筛选条件。 取值范围: 请详见Filter参数说明。 默认取值: 不涉及 |
ID |
否 |
String |
参数解释: 一条规则的标识。 约束限制: 只能由大写或小写的英文字母、数字、英文句号(.)、下划线(_)和连字符(-)组成。 取值范围: 长度为0~255的字符串。 默认取值: 不涉及 |
Prefix |
是 |
String |
参数解释: 对象名前缀,用来标识哪些对象可以匹配到当前规则。 约束限制:
取值范围: 长度为0~255的字符串。 默认取值: 不涉及 |
Status |
是 |
String |
参数解释: 标识当前规则是否启用。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Date |
当对象转储时,如果没有Days元素,则必选; 当删除对象时,如果没有Days或ExpiredObjectDeleteMarker元素,则必选。 |
String |
参数解释: 指定OBS对该日期之前的对象执行生命周期规则。 约束限制: 日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。 取值范围: 日期格式的字符串。 默认取值: 不涉及 |
Days |
当对象转储时,如果没有Date元素,则必选; 当删除对象时,如果没有Date或ExpiredObjectDeleteMarker元素,则必选。 |
Integer |
参数解释: 指定生命周期规则在对象最后更新过后多少天生效。单位:天。 约束限制: 仅针对对象的最新版本。 取值范围: 取值为0~2147483647的数字。 默认取值: 不涉及 |
StorageClass |
如果有Transition或NoncurrentVersionTransition元素,则必选 |
String |
参数解释: 表示对象将被修改成的目标存储类别。 约束限制: 不涉及 取值范围: WARM:低频访问存储 COLD:归档存储 DEEP_ARCHIVE:深度归档存储 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Date |
当对象转储时,如果没有Days元素,则必选; 当删除对象时,如果没有Days或ExpiredObjectDeleteMarker元素,则必选。 |
String |
参数解释: 指定OBS对该日期之前的对象执行生命周期规则。 约束限制: 日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。 取值范围: 日期格式的字符串。 默认取值: 不涉及 |
Days |
当对象转储时,如果没有Date元素,则必选; 当删除对象时,如果没有Date或ExpiredObjectDeleteMarker元素,则必选。 |
Integer |
参数解释: 指定生命周期规则在对象最后更新过后多少天生效。单位:天。 约束限制: 仅针对对象的最新版本。 取值范围: 取值为0~2147483647的数字。 默认取值: 不涉及 |
ExpiredObjectDeleteMarker |
如果没有Days或Date元素,则必选。 |
Boolean |
参数解释: 表示是否删除过期删除标记。 约束限制: 如果生命周期规则里配置了Tag时,不可配置该规则。 取值范围:
默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
NoncurrentDays |
如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选 |
Integer |
参数解释: 表示对象在成为历史版本之后第几天时规则生效。单位:天。 约束限制: 仅针对历史版本。 取值范围:
默认取值: 不涉及 |
StorageClass |
如果有Transition或NoncurrentVersionTransition元素,则必选 |
String |
参数解释: 表示对象将被修改成的目标存储类别。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
NoncurrentDays |
如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选 |
Integer |
参数解释: 表示对象在成为历史版本之后第几天时规则生效。单位:天。 约束限制: 仅针对历史版本。 取值范围: 取值为0~2147483647的数字。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
DaysAfterInitiation |
如果有AbortIncompleteMultipartUpload则必选 |
Integer |
参数解释: 指定生命周期规则在碎片生成后多久执行过期删除操作。单位:天。 约束限制: 不涉及 取值范围: 取值为0~2147483647的数字。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
And |
存在Prefix和Tag的多条匹配规则时,则必选 |
XML |
参数解释: 表示当前多条匹配规则逻辑且的关系。用于对象名前缀和对象标签二者的组合或多个对象标签组合来匹配对象。 约束限制: 取值范围: 请详见And参数说明。 默认取值: 不涉及 |
Tag |
否 |
Container |
参数解释: 对象标签,用以标识带有该标签的对象,可以匹配到当前规则。 约束限制:
取值范围: 请详见Tag参数说明。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Tag |
否 |
Container |
参数解释: 标签元素,用来标识哪些被打上该标签对象,可以匹配到当前规则。 约束限制:
取值范围: 请详见Tag参数说明。 默认取值: 不涉及 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Key |
存在Tag时,则必选 |
String |
参数解释: Tag的键名。 约束限制: 不涉及 取值范围: 键名区分大小写且必须唯一,长度为0~128的字符串,不能为空,同时不允许使用“=”、“*”、“<”、“>”、“\”、“,”、“|”、“/”、“?”、“!”、“;”等字符。 默认取值: 不涉及 |
Value |
存在Tag时,则必选 |
String |
参数解释: Tag的键值。 约束限制: 不涉及 取值范围: 键值区分大小写,长度为0~255的字符串,可以为空,同时不允许使用“=”、“*”、“<”、“>”、“\”、“,”、“|”、“?”、“!”、“;”等字符。 默认取值: 不涉及 |
响应消息样式
1 2 3 |
HTTP/1.1 status_code
Date: date
Content-Length: length
|
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息不带消息元素。
错误响应消息
无特殊错误,所有错误已经包含在表2中。
请求示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
PUT /?lifecycle HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-MD5: ujCZn5p3fmczNiQQxdsGaQ==
Content-Length: 919
<?xml version="1.0" encoding="utf-8"?>
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Filter>
<And>
<Prefix>prefix</Prefix>
<Tag><Key>key1</Key><Value>value1</Value></Tag>
<Tag><Key>key2</Key><Value>value2</Value></Tag>
</And>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>70</Days>
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays>70</NoncurrentDays>
</NoncurrentVersionExpiration>
<Transition>
<Days>30</Days>
<StorageClass>WARM</StorageClass>
</Transition>
<Transition>
<Days>60</Days>
<StorageClass>COLD</StorageClass>
</Transition>
<NoncurrentVersionTransition>
<NoncurrentDays>30</NoncurrentDays>
<StorageClass>WARM</StorageClass>
</NoncurrentVersionTransition>
<NoncurrentVersionTransition>
<NoncurrentDays>60</NoncurrentDays>
<StorageClass>COLD</StorageClass>
</NoncurrentVersionTransition>
</Rule>
</LifecycleConfiguration>
|
响应示例
1 2 3 4 5 6 |
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: WED, 01 Jul 2015 03:05:34 GMT
Content-Length: 0
|
请求示例:基于最后一次修改时间策略仅执行转换文件存储类型操作
PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: b67aDumlm/b+5iev6+sRYw==
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Prefix>test/</Prefix>
<Status>Enabled</Status>
<Transition>
<Days>30</Days>
<StorageClass>WARM</StorageClass>
</Transition>
<Transition>
<Days>60</Days>
<StorageClass>COLD</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
响应示例:基于最后一次修改时间策略仅执行转换文件存储类型操作
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSZbDadL1f7fYU44bvRLvc0l6D10+wzG
x-obs-request-id: 0000018A2BCBB3ABD3046B99E3ED2E30
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT
请求示例:基于最后一次修改时间策略仅执行删除文件操作
PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: tt0IizQ7YSTFtMJ3sie6qA==
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Prefix>test/</Prefix>
<Status>Enabled</Status>
<Expiration>
<Days>70</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
响应示例:基于最后一次修改时间策略仅执行删除文件操作
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSfpG6nArWY7cM7rB3+GbvO13XJPx9g4
x-obs-request-id: 0000018A2BD6BB02D30426F6E4A1FBA2
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT
请求示例:基于最后一次修改时间执行转换文件存储类型以及删除操作
PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: 9CJYqNUbXEVhhawEx0ICRw==
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Prefix>test/</Prefix>
<Status>Enabled</Status>
<Expiration>
<Days>70</Days>
</Expiration>
<Transition>
<Days>30</Days>
<StorageClass>WARM</StorageClass>
</Transition>
<Transition>
<Days>60</Days>
<StorageClass>COLD</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
响应示例:基于最后一次修改时间执行转换文件存储类型以及删除操作
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSMYkLcGTyUsgSJe2Rdsg2P8JwMsJV6n
x-obs-request-id: 0000018A2BDA0816D2877F5D5622F0BA
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT
请求示例:基于最后一次修改时间执行删除历史版本文件及清理删除标记的操作
PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: SGAUB+2hLUAWV5IJ69xU+Q==
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Prefix>test/</Prefix>
<Status>Enabled</Status>
<NoncurrentVersionExpiration>
<NoncurrentDays>70</NoncurrentDays>
</NoncurrentVersionExpiration>
</Rule>
</LifecycleConfiguration>
响应示例:基于最后一次修改时间执行删除历史版本文件及清理删除标记的操作
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSZbDadL1f7fYU44bvRLvc0l6D10+wzG
x-obs-request-id: 0000018A2BCBB3ABD3046B99E3ED2E30
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT
请求示例:执行删除碎片操作
PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: Thu, 24 Apr 2025 14:28:22 GMT
Content-Type: application/xml
Content-MD5: PBgGafte2ACjUwYxdJA47Q==
<LifecycleConfiguration>
<Rule>
<ID>lifecycle-rule-id</ID>
<Prefix>test/</Prefix>
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>10</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
响应示例:执行删除碎片操作
HTTP/1.1 200 OK
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCTlN+glNMVGtTicAnVXkTVDjR5xKSLuH
x-obs-request-id: 0000018A2BE86742D2C6989CA79E136C
Server: OBS
Content-Length: 0
Date: Thu, 24 Apr 2025 14:28:23 GMT