更新时间:2025-08-22 GMT+08:00

设置桶的生命周期配置

功能介绍

您可以通过设置生命周期规则来管理对象的生命周期,例如定期将桶中的对象删除或者转换对象的存储类别。生命周期规则详情请参见生命周期

请求消息样式

 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.region.myhuaweicloud.com 
Content-Length: length
Date: date
Authorization: authorization
Content-SHA256: SHA256
<?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所示。

表1 请求消息头

参数

是否必选

参数类型

描述

Content-SHA256

String

参数解释:

消息体的SHA256摘要字符串,即消息体256bit SHA256值经过base64编码后得到的字符串。

示例:ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=

取值范围:

不涉及

默认取值:

不涉及

请求消息元素

在此请求中,需要在请求的消息体中配置桶的生命周期配置信息。配置信息以XML格式上传,具体的配置元素如表2描述。配置元素更详细规则可参见生命周期元素说明

表2 生命周期配置元素

参数名称

是否必选

参数类型

描述

LifecycleConfiguration

XML

参数解释:

生命周期配置规则。可以配置多条规则,LifecycleConfiguration是Rule的父节点。

约束限制:

整个配置消息体总大小不超过20KB。

取值范围:

不涉及

默认取值:

不涉及

Rule

XML

参数解释:

具体某一条生命周期配置。

约束限制:

不涉及

取值范围:

请详见Rule参数说明

默认取值:

不涉及

表3 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

参数解释:

对象名前缀,用来标识哪些对象可以匹配到当前规则。

约束限制:

  • 当按前缀配置时,如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系,OBS会将两条规则视为同一条,而禁止您配置本条规则。例如,系统中已存在指定前缀名为“abc”的规则,则不允许再配置指定前缀以“abc”字段开头的规则。
  • 如果已存在按前缀配置的生命周期规则,则不允许再新增配置到整个桶的规则。

取值范围:

长度为0~255的字符串。

默认取值:

不涉及

Status

String

参数解释:

标识当前规则是否启用。

约束限制:

不涉及

取值范围:

  • Enabled:启用规则。
  • Disabled:停用规则。

默认取值:

不涉及

表4 Transition参数说明

参数

是否必选

参数类型

描述

Date

如果没有Days元素,则必选

String

参数解释:

指定OBS对该日期之前的对象执行生命周期规则。

约束限制:

日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。

取值范围:

日期格式的字符串。

默认取值:

不涉及

Days

如果没有Date元素,则必选

Integer

参数解释:

指定生命周期规则在对象最后更新过后多少天生效。单位:天。

约束限制:

仅针对对象的最新版本。

取值范围:

取值为0~2147483647的数字。

默认取值:

不涉及

StorageClass

如果有Transition或NoncurrentVersionTransition元素,则必选

String

参数解释:

表示对象将被修改成的目标存储类别。

约束限制:

不涉及

取值范围:

  • WARM:低频访问存储
  • COLD:归档存储
  • DEEP_ARCHIVE:深度归档存储

默认取值:

不涉及

表5 Expiration参数说明

参数

是否必选

参数类型

描述

Date

如果没有Days元素,则必选

String

参数解释:

指定OBS对该日期之前的对象执行生命周期规则。

约束限制:

日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。

取值范围:

日期格式的字符串。

默认取值:

不涉及

Days

如果没有Date元素,则必选

Integer

参数解释:

指定生命周期规则在对象最后更新过后多少天生效。单位:天。

约束限制:

仅针对对象的最新版本。

取值范围:

取值为0~2147483647的数字。

默认取值:

不涉及

表6 NoncurrentVersionTransition参数说明

参数

是否必选

参数类型

描述

NoncurrentDays

如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选

Integer

参数解释:

表示对象在成为历史版本之后第几天时规则生效。单位:天。

约束限制:

仅针对历史版本。

取值范围:

  • 仅设置一种转换:最少设置1天。
  • 设置多种转换:后者时间要比前者时间最少长1天。
  • 设置多种转换:针对同一个对象的历史版本转深度归档存储时间需要晚于转归档存储时间,转归档存储时间需要晚于转低频访问存储时间。

默认取值:

不涉及

StorageClass

如果有Transition或NoncurrentVersionTransition元素,则必选

String

参数解释:

表示对象将被修改成的目标存储类别。

约束限制:

不涉及

取值范围:

  • WARM:低频访问存储
  • COLD:归档存储
  • DEEP_ARCHIVE:深度归档存储

默认取值:

不涉及

表7 NoncurrentVersionExpiration参数说明

参数

是否必选

参数类型

描述

NoncurrentDays

如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选

Integer

参数解释:

表示对象在成为历史版本之后第几天时规则生效。单位:天。

约束限制:

仅针对历史版本。

取值范围:

取值为0~2147483647的数字。

默认取值:

不涉及

表8 AbortIncompleteMultipartUpload参数说明

参数

是否必选

参数类型

描述

DaysAfterInitiation

如果有AbortIncompleteMultipartUpload则必选

Integer

参数解释:

指定生命周期规则在碎片生成后多久执行过期删除操作。单位:天。

约束限制:

不涉及

取值范围:

取值为0~2147483647的数字。

默认取值:

不涉及

表9 Filter参数说明

参数

是否必选

参数类型

描述

And

存在Prefix和Tag的多条匹配规则时,则必选

XML

参数解释:

表示当前多条匹配规则逻辑且的关系。用于对象名前缀和对象标签二者的组合或多个对象标签组合来匹配对象。

约束限制:

  • And的子节点不能为空。
  • 当Fliter的子节点存在Tag或者Prefix时,And不能与之作为Fliter的同级别子节点共存。(Tag和Prefix可以包含在And中)。

取值范围:

请详见And参数说明

默认取值:

不涉及

Tag

Container

参数解释:

对象标签,用以标识带有该标签的对象,可以匹配到当前规则。

约束限制:

  • 存在于Filter的子节点时,只能存在1个Tag节点,如果Filter的同级子节点存在Prefix节点时则不能存在Tag节点。
  • 存在于And的子节点时,只能存在最多10个Tag节点,且多个Tag之间的Key值不能相同。
  • Rule的子节点内存在AbortIncompleteMultipartUpload时,不支持配置Tag对碎片进行筛选。
  • 配置多条规则时,如果规则间的筛选条件存在标签重叠情况,且生命周期操作存在冲突时,将不允许配置。例如:规则1,指定标签为“Key等于key1,Value等于value1”的筛选条件,在对象创建90天后删除;规则2,指定标签为“Key等于key1,Value 等于value1”、“Key等于key2,Value 等于value2”的筛选条件,在对象创建120天后转为COLD存储类型。此时存在标签重叠和生命周期操作冲突的情况,将不被允许配置。

取值范围:

请详见Tag参数说明

默认取值:

不涉及

表10 And参数说明

参数

是否必选

参数类型

描述

Tag

Container

参数解释:

标签元素,用来标识哪些被打上该标签对象,可以匹配到当前规则。

约束限制:

  • 存在于Filter的子节点时,只能存在1个Tag节点,如果Filter的同级子节点存在Prefix节点时则不能存在Tag节点。
  • 存在于And的子节点时,只能存在最多10个Tag节点,且多个Tag之间的Key值不能相同。
  • Rule的子节点内存在AbortIncompleteMultipartUpload时,不支持配置Tag对碎片进行筛选。
  • 配置多条规则时,如果规则间的筛选条件存在标签重叠情况,且生命周期操作存在冲突时,将不允许配置。例如:规则1,指定标签为“Key等于key1,Value等于value1”的筛选条件,在对象创建90天后删除;规则2,指定标签为“Key等于key1,Value 等于value1”、“Key等于key2,Value 等于value2”的筛选条件,在对象创建120天后转为COLD存储类型。此时存在标签重叠和生命周期操作冲突的情况,将不被允许配置。

取值范围:

请详见Tag参数说明

默认取值:

不涉及

表11 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.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-SHA256: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=
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
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