
# 生命周期元素说明
本章节以一个典型的配置示例为例，说明生命周期规则的元素组成，示例如下：
```
<LifecycleConfiguration>
     <!-- 第一条规则 -->
     <Rule>
         <ID>Rule-1</ID>
         <Prefix>prefix1</Prefix>
         <Status>Enabled</Status>
         <!-- 删除最后修改时间在2023年5月20日之前，前缀为prefix1/的对象当前版本 -->
         <Expiration>
             <Date>2023-05-20T00:00:00.000Z</Date>
         </Expiration>
     </Rule>
     <!-- 第二条规则 -->
     <Rule>
         <ID>Rule-2</ID>
         <Filter>
             <Prefix>prefix2</Prefix>
             <Tag>
                 <Key>key1</Key>
                 <Value>value1</Value>
             </Tag>
         </Filter>
         <Status>Enabled</Status>
         <!-- 针对前缀为prefix2/且标签键名为key1键值为value1，最后修改时间是30天前的对象当前版本，转换存储类别为归档存储 -->
         <Transition>
             <Days>30</Days>
             <StorageClass>COLD</StorageClass>
         </Transition>
         <!-- 删除前缀为prefix2/且标签键名为key1键值为value1，最后修改时间是60天前的对象当前版本 -->
         <Expiration>
             <Days>60</Days>
         </Expiration>
         <!-- 针对前缀为prefix2/且标签键名为key1键值为value1，最后修改时间是30天前的对象历史版本，转换存储类别为归档存储 -->
         <NoncurrentVersionTransition>
             <NoncurrentDays>30</NoncurrentDays>
             <StorageClass>COLD</StorageClass>
         </NoncurrentVersionTransition>
         <!-- 删除前缀为prefix2/且标签键名为key1键值为value1，最后修改时间是60天前的对象历史版本 -->
         <NoncurrentVersionExpiration>
             <NoncurrentDays>60</NoncurrentDays>
         </NoncurrentVersionExpiration>
     </Rule>
 </LifecycleConfiguration>
```
#### 生命周期规则的组成元素
一条完整的生命周期规则由规则元数据、规则的对象筛选条件和规则执行的动作和时间3个关键元素组成：
图1生命周期规则的组成元素   
![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002084778029.png)
#### 规则元数据
规则元数据说明规则ID以及规则状态：
表1规则元数据 
| **元素**        || 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|---|:---|
| 规则元数据 | ID     | **元素解释：** 规则ID，ID元素唯一地标识一条规则。 **取值范围：** 长度大于0且不超过255的字符串，只能由大写或小写的英文字母、数字、英文句号（.）、下划线（_）和连字符（-）组成。 **默认取值：** 如果未指定ID元素或者该值为空时，OBS会自动生成一个唯一ID。                                                                                                                                                                                                                                                                                 |
| 规则元数据 | Status | **元素解释：** 规则状态。如果规则处于禁用状态，则OBS不会执行规则中指定的任何操作。 **取值范围：** - Enabled：规则启用  - Disabled：规则禁用   **默认取值：** 无 |
   
#### 规则的对象筛选条件
规则的对象筛选条件说明生命周期规则的操作目标是哪些对象：
表2规则的对象筛选条件 
| **元素**                                                                                                                                      || **含义**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|---|:---|
| 规则的对象筛选条件 （Filter） | Prefix         | **元素解释：** 对象名前缀，以指定前缀开头的对象可以匹配到当前规则。 如果您指定空的前缀，该规则将应用于桶中的所有对象。 **约束限制：** - 每条生命周期规则必须有且只有一个Prefix。如果无需使用对象名前缀过滤，字段值可置为空，即"\<Prefix\>\</Prefix\>"。  - 只有前缀筛选条件，不含对象标签筛选条件时，不写父节点Filter。例如以下示例只筛选前缀为texta/的对象，没有对象标签筛选条件，不写Filter父节点。 ``` <LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix>texta/</Prefix> <Status>Enabled</Status> <Transition> <Days>100</Days> <StorageClass>COLD</StorageClass> </Transition> </Rule> </LifecycleConfiguration> ```    **取值范围：** 长度大于等于0且不超过1024的字符串。 **默认取值：** 如不指定，默认为空。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 规则的对象筛选条件 （Filter） | Tag            | **元素解释：** 对象标签，用以标识带有该标签的对象，可以匹配到当前规则。 **约束限制：** - 删除碎片、删除过期删除标记不支持使用对象标签（Tag）作为筛选条件。  - 单条生命周期规则中，对象标签的数量是0\~10。  - 当筛选条件中指定多个标签时，每个标签的Key必须唯一。  - 键名(Key)约束： - 最大长度为128个字符，可用UTF-8格式表示的字母（含中文）、数字、空格，以及以下字符："_ . : = + - @"。  - 区分大小写，存在多条Tag时，Tag的键名(Key)不能重复。  - 不能为空。      - 键值（Value）约束： - 最大长度为255个字符，可用UTF-8格式表示的字母（含中文）、数字、空格，以及以下字符："_ . : /= + - @"。  - 区分大小写。  - 可以为空。     示例如下，规定对象标签键名为key1，键值为value1的对象，在最后一次修改后120天删除。 ``` <LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Status>Enabled</Status> <Filter> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> </Filter> <Expiration> <Days>120</Days> </Expiration> </Rule> </LifecycleConfiguration> ``` **默认取值：** 如果不指定，默认为空。 |
| 规则的对象筛选条件 （Filter） | Prefix和Tag组合使用 | 对象名前缀、对象标签二者组合筛选对象，此时需要使用逻辑**And**来组合筛选条件。And中可包含大于等于2个筛选条件，Prefix是必选且只能有1个，Tag是可选且最多可配置10个。 示例如下，规定对象标签键名为key1，键值为value1，且前缀为texta/的对象，在最后一次修改后120天删除。 ``` <LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Status>Enabled</Status> <Filter> <And> <Prefix>texta/</Prefix> <Tag> <Key>key1</Key> <Value>value1</Value> </Tag> </And> </Filter> <Expiration> <Days>120</Days> </Expiration> </Rule> </LifecycleConfiguration> ```                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 规则执行的动作和时间
下表参数说明在什么时间点开始执行生命周期规则，以及针对目标对象执行的动作是什么：
表3规则执行的动作 
| 操作                             | 说明                                                                                                                                                                                         | 相关子元素                                                                                                                                          | 子元素说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| Expiration                     | 删除对象 说明： Expiration操作不会删除未合并的多段对象。 | Days （Days、Date和ExpiredObjectDeleteMarker三选一）                      | **元素解释：** 指定生命周期规则在距离对象最后一次修改多少天后执行过期删除操作。 **约束限制：** - 仅适用于对象的当前版本。  - 针对同一个对象过期删除时间需要晚于存储类别转换时间。   **取值范围：** 正整数，单位：天。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Expiration                     | 删除对象 说明： Expiration操作不会删除未合并的多段对象。 | Date （Days、Date和ExpiredObjectDeleteMarker三选一）                           | **元素解释：** 指定最后一次修改时间在该日期之前的对象执行删除对象操作。 **约束限制：** - 仅适用于对象的当前版本。  - 日期格式必须为ISO8601的格式，并且为UTC的零点。 例如：2018-01-01T00:00:00.000Z，表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除。  - 针对同一个对象过期删除时间需要晚于存储类别转换时间。  - 控制台和OBS Browser+暂不支持指定日期（Date）删除的功能。   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                      |
| Expiration                     | 删除过期删除标记                                                                                                                                                                                   | ExpiredObjectDeleteMarker （Days、Date和ExpiredObjectDeleteMarker三选一） | **元素解释：** 是否删除过期删除标记。 **约束限制：** 不支持使用对象标签（Tag）作为筛选条件。 **取值范围：** - true：删除过期删除标记  - false：不删除过期删除标记   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Transition                     | 转换对象存储类别                                                                                                                                                                                   | Days （Days与Date二选一）                    | **元素解释：** 表示在对象在距离对象最后一次修改多少天后转换对象存储类别。 **约束限制：** 仅适用于对象的当前版本。 **取值范围：** 单位：天。 - 仅设置一种转换：最少设置1天。  - 设置多种转换：针对同一个对象转深度归档存储时间需要晚于转归档存储时间，转归档存储时间需要晚于转低频存储时间。   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Transition                     | 转换对象存储类别                                                                                                                                                                                   | Date （Days与Date二选一）                                                | **元素解释：** 指定最后一次修改时间在该日期之前的对象执行存储类别转换。 **约束限制：** - 仅适用于对象的当前版本。  - 日期格式必须为ISO8601的格式，并且为UTC的零点。 例如：2018-01-01T00:00:00.000Z，表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象转换存储类别。  - 设置多种转换：针对同一个对象转深度归档存储时间需要晚于转归档存储时间，转归档存储时间需要晚于转低频访问存储时间。  - 控制台和OBS Browser+暂不支持指定日期（Date）转换存储类别的功能。   **默认取值：** 无                                                                                                                                                                                                                                                                                                                   |
| Transition                     | 转换对象存储类别                                                                                                                                                                                   | StorageClass                                                                                                                                   | **元素解释：** 表示对象将被修改成的目标存储类别。 **取值范围：** - WARM：低频访问存储  - COLD：归档存储  - DEEP_ARCHIVE：深度归档存储   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| AbortIncompleteMultipartUpload | 清理碎片                                                                                                                                                                                       | DaysAfterInitiation                                                                                                                            | **元素解释：** 指定生命周期规则在碎片生成后多久执行过期删除操作。 **约束限制：** 不支持使用对象标签（Tag）作为筛选条件。 **取值范围：** 正整数，单位：天。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| NoncurrentVersionExpiration    | 删除对象历史版本                                                                                                                                                                                   | NoncurrentDays                                                                                                                                 | **元素解释：** 表示对象版本在成为历史版本之后第几天时删除。 **约束限制：** - 仅针对对象的历史版本。  - 当前桶已启用（或开启后暂停）多版本。  - 针对同一个对象的历史版本过期删除时间需要晚于存储类别转换时间。   **取值范围：** 正整数，单位：天。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| NoncurrentVersionTransition    | 转换对象历史版本的存储类别                                                                                                                                                                              | NoncurrentDays                                                                                                                                 | **元素解释：** 表示对象版本在成为历史版本之后第几天时转换对象。 **约束限制：** - 仅针对对象的历史版本。  - 当前桶已启用（或开启后暂停）多版本。   **取值范围：** 单位：天。 - 仅设置一种转换：最少设置1天。  - 设置多种转换：后者时间要比前者时间最少长1天。  - 设置多种转换：针对同一个对象的历史版本转深度归档存储时间需要晚于转归档存储时间，转归档存储时间需要晚于转低频访问存储时间。   **默认取值：** 无 |
| NoncurrentVersionTransition    | 转换对象历史版本的存储类别                                                                                                                                                                              | StorageClass                                                                                                                                   | **元素解释：** 表示对象将被修改成的目标存储类别。 **取值范围：** - WARM：低频访问存储  - COLD：归档存储  - DEEP_ARCHIVE：深度归档存储   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/notice_3.0-zh-cn.png)
单条生命周期规则中，days和date的选择必须统一，即如果Expiration选择搭配Days，则Transition也必须要选择Days，同理如果Expiration选择搭配Date，则Transition也必须要选择Date。
