# 设置桶的生命周期配置-SetBucketLifecycle
#### 功能介绍
您可以通过设置生命周期规则来管理对象的生命周期，例如定期将桶中的对象删除或者转换对象的存储类别。生命周期规则详情请参见[生命周期](https://support.huaweicloud.com/usermanual-obs/obs_41_0069.html)。
#### 接口约束
- 生命周期规则目前仅支持根据前缀和[对象标签](https://support.huaweicloud.com/usermanual-obs/obs_41_0054.html)进行匹配，不支持通配符匹配、后缀匹配以及正则匹配。
- 单个桶的生命周期规则条数没有限制，但单个桶中所有生命周期规则的XML描述总大小不能超过20KB。
- 您最多可以在一个并行文件系统下配置20条生命周期管理规则，超过20条将提示不支持。
- 设置桶的生命周期配置为覆盖语义，修改桶的生命周期规则，您需要在原有规则的基础上添加规则。例如，某个Bucket已配置了生命周期规则Rule1，您需要在Rule1基础上继续追加生命周期规则Rule2，您需要执行以下操作。
  1. 调用GetBucketLifecycle接口获取当前生命周期规则配置Rule1。
  
  2. 在Rule1基础上叠加Rule2。
  
  3. 调用PutBucketLifecycle接口更新生命周期规则为Rule1+Rule2。
   
 
#### 授权信息
您必须是桶拥有者或拥有设置桶的生命周期配置的权限，才能调用本接口，建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见[OBS不同权限控制方式的区别](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)。
- 如果使用**IAM授权** ，那么请在"角色与策略授权"、"身份策略授权"两种IAM授权方式中选择一种，并配置相应权限：
  - 如果使用**角色与策略授权** （旧版IAM，即IAM v3接口），需具备**obs:bucket:PutLifecycleConfiguration** 权限，授权操作请参见[创建IAM自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html)。
  
  - 如果使用**身份策略授权** （新版IAM，即IAM v5接口），如下表所示，需具备**obs:bucket:putLifecycleConfiguration** 权限，授权操作请参见[创建IAM自定义身份策略](https://support.huaweicloud.com/usermanual-iam5/iam_01_0917.html)。
    
    | 授权项 Action | 访问级别 Access Level | 资源类型（\*为必须） Resource Type (\*: required) | [条件键](https://support.huaweicloud.com/api-obs/obs_04_0112.html#ZH-CN_TOPIC_0000002375307974__condition_table) Condition Key                                                                                                                                                                                                                                                          | [别名](https://support.huaweicloud.com/iam5_faq/iam_01_1103.html) Alias | 依赖的授权项 Dependencies |
    |:---|:---|:---|:---|:---|:---|
    | obs:bucket:putLifecycleConfiguration               | Write                                                     | bucket \*                                                                       | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)  - [g:ResourceTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_0934.html#section2)                                   | -                                                                                                          | -                                                  |
    | obs:bucket:putLifecycleConfiguration               | Write                                                     | -                                                                                | - obs:EpochTime  - obs:SourceIp  - obs:TlsVersion  - obs:CustomDomain   | -                                                                                                          | -                                                  |
       
    
   
- 如果使用**桶策略** 进行授权，需具备**obs:bucket:PutLifecycleConfiguration** 权限，具体操作请参见[自定义创建桶策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0123.html)。
 
#### URI
PUT /
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-obs/obs_04_0006.html)。调用前需要先[计算API签名](https://support.huaweicloud.com/api-obs/obs_04_0009.html)，并将签名添加到请求中。
您还可以使用[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/OBS/doc?api=SetBucketLifecycle)在线调试接口。
#### 请求消息样式
```
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>WARM</StorageClass>  
        </Transition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>30</NoncurrentDays>  
         <StorageClass>WARM</StorageClass>  
        </NoncurrentVersionTransition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>60</NoncurrentDays>  
         <StorageClass>COLD</StorageClass>  
        </NoncurrentVersionTransition>  
    </Rule> 
</LifecycleConfiguration>
```
#### 请求头参数（Request headers）
该请求使用的消息头如下[表1]所示。
 表1请求头参数 
| 参数          | 是否必选 | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| Content-MD5 | 是   | String | **参数解释：** 按照RFC 1864标准计算出消息体的MD5摘要字符串，即消息体128bit MD5值经过base64编码后得到的字符串。 示例：n58IG6hfM7vqI4K0vnWpog== **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求体参数（Request body）
在此请求中，需要在请求的消息体中配置桶的生命周期配置信息。配置信息以XML格式上传，具体的配置元素如[表2]描述。配置元素更详细规则可参见[生命周期元素说明](https://support.huaweicloud.com/usermanual-obs/obs_41_0073.html)。
 表2生命周期配置元素 
| 参数名称                  | 是否必选 | 参数类型         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| LifecycleConfiguration | 是     | Container   | **参数解释：** 生命周期配置规则。可以配置多条规则，LifecycleConfiguration是[Rule]的父节点。 **约束限制：** 整个配置消息体总大小不超过20KB。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| Rule              | 是  | Container | **参数解释：** 具体某一条生命周期配置，详细参数说明请参见[Rule参数说明]。 **约束限制：** 不涉及 **默认取值：** 不涉及                                                                                                                      |
   
 表3Rule参数说明 
| 参数                            | 是否必选                                                                                                         | 参数类型        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| ID                           | 否                                                                                                           | String     | **参数解释：** 一条规则的标识。 **约束限制：** 只能由大写或小写的英文字母、数字、英文句号（.）、下划线（_）和连字符（-）组成。 **取值范围：** 长度为0\~255的字符串。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Filter                         | 否，条件必选                                                                                                    | XML         | **参数解释：** 指定具体的匹配规则，生命周期将应用于桶内匹配到的对象，请详见[Filter参数说明]。可以按照对象名前缀、对象标签或者二者的组合筛选对象。 父节点：[Rule] **约束限制：** - 当**Prefix作为Filter子节点** 时，Filter**必选**。  - 当Prefix作为[Rule]子节点，**与Filter同级别时** ，Prefix与Filter**二者只能选其一**，不能同时出现。  - Filter中如果包含多个筛选条件，需要使用逻辑AND组合筛选条件。   **默认取值：** 不涉及                                                                                                                                   |
| Prefix                      | 是                                                                                                         | String | **参数解释：** 对象名前缀，用来标识哪些对象可以匹配到当前规则。 **约束限制：** - OBS支持单个桶配置多条生命周期规则，当多条规则的筛选条件存在重叠时，会导致单个对象同时匹配到多条生命周期规则。满足以下任一条件时，认为规则间存在重叠关系： - 前缀筛选条件为空，则该规则与其他所有规则重叠。  - 如果规则A的筛选前缀与规则B相同，则规则A和规则B存在重叠关系。  - 如果规则A的筛选前缀是规则B筛选前缀的子串，则规则A和规则B存在重叠关系。   对于重叠规则的处理逻辑详见[重叠规则处理逻辑](https://support.huaweicloud.com/usermanual-obs/obs_41_0072.html)    **取值范围：** 长度为0\~1024的字符串。 **默认取值：** 不涉及 |
| 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        | **参数解释：** 未合并的多段任务（碎片）的过期属性，参数详细说明请参见[AbortIncompleteMultipartUpload参数说明]。 **约束限制：** 不支持基于标签（Tag）的筛选条件。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Status                       | 是                                                                                                          | String   | **参数解释：** 标识当前规则是否启用。 **约束限制：** 不涉及 **取值范围：** - Enabled：启用规则。  - Disabled：停用规则。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表4Transition参数说明 
| 参数          | 是否必选                                                                                                               | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| 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 | **参数解释：** 指定生命周期规则在对象最后更新过后多少天生效。单位：天。 **约束限制：** 仅针对对象的最新版本。 **取值范围：** 取值为1\~2147483647的数字。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                 |
| StorageClass | 如果有Transition或NoncurrentVersionTransition元素，则必选                                                                   | String  | **参数解释：** 表示对象将被修改成的目标存储类别。 **约束限制：** 不涉及 **取值范围：** - WARM：低频访问存储  - COLD：归档存储  - DEEP_ARCHIVE：深度归档存储   **默认取值：** 不涉及 |
   
 表5Expiration参数说明 
| 参数                        | 是否必选                                                                                                              | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| 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 | **参数解释：** 指定生命周期规则在对象最后更新过后多少天生效。单位：天。 **约束限制：** 仅针对对象的最新版本。 **取值范围：** 取值为1\~2147483647的数字。 **默认取值：** 不涉及                                                                                                                                                                                                                                        |
| ExpiredObjectDeleteMarker | 如果没有Days或Date元素，则必选。                                                                                              | Boolean | **参数解释：** 表示是否删除过期删除标记。 **约束限制：** 如果生命周期规则里配置了[Tag]时，不可配置该规则。 **取值范围：** - true：过期删除标记被删除。  - false：过期删除标记不会被删除。   **默认取值：** 不涉及 |
   
 表6NoncurrentVersionTransition参数说明 
| 参数           | 是否必选                                                             | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| NoncurrentDays | 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素，则必选 | Integer | **参数解释：** 表示对象在成为历史版本之后第几天时规则生效。单位：天。 **约束限制：** 仅针对历史版本。 **取值范围：** - 仅设置一种转换：最少设置1天。  - 设置多种转换：后者时间要比前者时间最少长1天。  - 设置多种转换：针对同一个对象的历史版本转深度归档存储时间需要晚于转归档存储时间，转归档存储时间需要晚于转低频访问存储时间。   **默认取值：** 不涉及 |
| StorageClass   | 如果有Transition或NoncurrentVersionTransition元素，则必选                 | String   | **参数解释：** 表示对象将被修改成的目标存储类别。 **约束限制：** 不涉及 **取值范围：** - WARM：低频访问存储  - COLD：归档存储  - DEEP_ARCHIVE：深度归档存储   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                         |
   
 表7NoncurrentVersionExpiration参数说明 
| 参数            | 是否必选                                                             | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| NoncurrentDays | 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素，则必选 | Integer | **参数解释：** 表示对象在成为历史版本之后第几天时规则生效。单位：天。 **约束限制：** 仅针对历史版本。 **取值范围：** 取值为1\~2147483647的数字。 **默认取值：** 不涉及 |
   
 表8AbortIncompleteMultipartUpload参数说明 
| 参数                  | 是否必选                                | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| DaysAfterInitiation | 如果有AbortIncompleteMultipartUpload则必选 | Integer | **参数解释：** 指定生命周期规则在碎片生成后多久执行过期删除操作。单位：天。 **约束限制：** 不涉及 **取值范围：** 取值为1\~2147483647的数字。 **默认取值：** 不涉及 |
   
 表9Filter参数说明 
| 参数    | 是否必选                     | 参数类型        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| And  | 存在Prefix和Tag的多条匹配规则时，则必选 | XML       | **参数解释：** 表示当前多条匹配规则逻辑且的关系。用于对象名前缀和对象标签二者的组合或多个对象标签组合来匹配对象。参数具体说明请参见[And参数说明]。 **约束限制：** - And的子节点不能为空。  - 当Filter的子节点存在[Tag]或者Prefix时，And不能与之作为Filter的同级别子节点共存。（[Tag]和Prefix可以包含在And中）。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Tag | 否                        | Container | **参数解释：** 对象标签，用以标识带有该标签的对象，可以匹配到当前规则。参数详细说明请参见[Tag参数说明]。 **约束限制：** - 存在于[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存储类型。此时存在标签重叠和生命周期操作冲突的情况，将不被允许配置。   **默认取值：** 不涉及 |
   
 表10And参数说明 
| 参数  | 是否必选 | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| Tag | 否     | Container | **参数解释：** 标签元素，用来标识哪些被打上该标签对象，可以匹配到当前规则。具体参数说明请参见 请详见[Tag参数说明]。 **约束限制：** - 存在于[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存储类型。此时存在标签重叠和生命周期操作冲突的情况，将不被允许配置。   **默认取值：** 不涉及 |
   
 表11Tag参数说明 
| 参数 | 是否必选         | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| Key    | 存在Tag时，则必选  | String  | **参数解释：** Tag的键名。 **约束限制：** 不涉及 **取值范围：** 键名区分大小写且必须唯一，长度为1\~128的字符串，不能为空，同时不允许使用"\*"、"\<"、"\>"、"\\"、","、"\|"、"/"、"?"、"!"、";"等字符。 **默认取值：** 不涉及 |
| Value | 存在Tag时，则必选 | String | **参数解释：** Tag的键值。 **约束限制：** 不涉及 **取值范围：** 键值区分大小写，长度为0\~255的字符串，可以为空，同时不允许使用"="、"\*"、"\<"、"\>"、"\\"、","、"\|"、"?"、"!"、";"等字符。 **默认取值：** 不涉及         |
   
#### 响应消息样式
```
HTTP/1.1 status_code
Date: date
Content-Length: length
```
#### 响应头 (Response Headers)
该请求的响应消息使用公共响应头，具体请参考[表1](https://support.huaweicloud.com/api-obs/obs_04_0013.html#ZH-CN_TOPIC_0173612084__d0e686)。
#### 响应体 (Response Body)
本接口的响应消息中不携带响应体。
#### 错误响应消息
无特殊错误，所有错误已包含在[错误码概述](https://support.huaweicloud.com/api-obs/obs_04_0115.html)中。
#### 请求示例
```
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>
```
#### 响应示例
```
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>
        <Filter>
            <Prefix>prefix</Prefix> 
        </Filter>
        <Status>Enabled</Status>
        <Transition>
            <Days>30</Days>
            <StorageClass>WARM</StorageClass>
        </Transition>
        <Transition>
            <Days>60</Days>
            <StorageClass>COLD</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>
```
#### 响应示例：基于最后一次修改时间策略仅执行转换对象存储类型操作
```
HTTP/1.1 200 OK
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>
        <Filter>
            <Prefix>prefix</Prefix> 
        </Filter>
        <Status>Enabled</Status>
        <Expiration>
            <Days>70</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```
#### 响应示例：基于最后一次修改时间策略仅执行删除对象操作
```
HTTP/1.1 200 OK
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>
        <Filter>
            <Prefix>prefix</Prefix> 
        </Filter>
        <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>
```
#### 响应示例：基于最后一次修改时间执行转换对象存储类型以及删除操作
```
HTTP/1.1 200 OK
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>
        <Filter>
            <Prefix>prefix</Prefix> 
        </Filter>
        <Status>Enabled</Status>
        <NoncurrentVersionExpiration> 
            <NoncurrentDays>70</NoncurrentDays> 
        </NoncurrentVersionExpiration>
    </Rule>
</LifecycleConfiguration>
```
#### 响应示例：基于最后一次修改时间执行删除历史版本对象及清理删除标记的操作
```
HTTP/1.1 200 OK
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>
        <Filter>
            <Prefix>prefix</Prefix> 
        </Filter>
        <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
```
#### 使用SDK调用接口
建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作，直接调用SDK接口函数即可访问OBS，无需手动计算签名。
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_1102.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0821.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0902.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0423.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_1002.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0902.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0902.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0902.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0902.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0902.html) |
|---|---|---|---|---|---|---|---|---|---|
   
#### 相关文档
- 使用obsutil设置桶的生命周期，请参见[设置桶的生命周期配置](https://support.huaweicloud.com/utiltg-obs/obs_11_0092.html)。
- 使用OBS Browser+设置桶的生命周期，请参见[配置生命周期管理策略](https://support.huaweicloud.com/browsertg-obs/obs_03_1050.html)。
- 了解更多桶生命周期相关介绍，请参见[生命周期](https://support.huaweicloud.com/usermanual-obs/obs_41_0069.html)。
- API操作涉及的计费项参见[计费项](https://support.huaweicloud.com/price-obs/obs_42_0002.html)。
 
