
# 生命周期配置示例
如果您的使用方式为API或SDK，请参考以下xml示例。
#### 单一规则单个筛选条件
**示例1：生命周期将应用于存储桶内的所有对象**
如果需要适用于桶中的全部对象，需要指定一个空前缀。以下规则适用于桶中的全部对象，在对象创建100天后将其转换为归档存储类型。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Transition>   
            <Days>100</Days>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
    </Rule>
</LifecycleConfiguration>
```
**示例2：基于对象名前缀指定筛选条件**
筛选条件指定了一个对象名前缀（texta/），以下生命周期规则将应用于对象名前缀为texta/ 的对象，例如 texta/file1.txt 和 texta/file2.txt。
此规则指定了两种生命周期操作：在对象创建90天后将其转换为低频访问存储类型，在对象创建120天后将其删除。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Status>Enabled</Status>
        <Prefix>texta/</Prefix>
        <Transition>   
            <Days>90</Days>   
            <StorageClass>WARM</StorageClass>   
        </Transition>  
        <Expiration>
            <Days>120</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```
**示例3：基于对象名前缀指定筛选条件，规定最后一次修改时间在指定日期前的对象被删除**
筛选条件指定了一个对象名前缀（texta/），以下生命周期规则将应用于对象名前缀为texta/ 的对象，例如 texta/file1.txt 和 texta/file2.txt。
此规则指定了一种生命周期操作：最后修改时间在2024年5月30日之前的对象过期删除。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Status>Enabled</Status>
        <Prefix>texta/</Prefix>
        <Expiration>
            <Date>2024-05-30T00:00:00.000Z</Date>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```
**示例4：基于对象名前缀指定筛选条件，规定最后一次修改时间在指定日期前的对象转换存储类型**
筛选条件指定了一个对象名前缀（texta/），以下生命周期规则将应用于对象名前缀为texta/ 的对象，例如 texta/file1.txt 和 texta/file2.txt。
此规则指定了一种生命周期操作：最后修改时间在2024年5月30日之前的对象转换为归档存储。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Status>Enabled</Status>
        <Prefix>texta/</Prefix>
        <Transition>   
            <Date>2024-05-30T00:00:00.000Z</Date>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
    </Rule>
</LifecycleConfiguration>
```
#### 单一规则多个筛选条件
单一规则下添加多个筛选条件，需要使用And作为父节点将多个筛选条件包含。
**示例1** **：单一规则指定多个筛选条件**
- 以下规则适用于桶中前缀为texta/，标签为（Key等于key1,Value 等于value1）、（Key等于key2,Value 等于value2）的对象，对象在创建120天后被删除。
  ```
  <LifecycleConfiguration>
      <Rule>
          <ID>sample-rule</ID>  
          <Filter>
              <And>
                  <Prefix>texta/</Prefix>
                  <Tag>
                      <Key>key1</Key>
                      <Value>value1</Value>
                  </Tag>
                  <Tag>
                      <Key>key2</Key>
                      <Value>value2</Value>
                  </Tag>
              </And>
          </Filter>
          <Status>Enabled</Status>
          <Expiration>
              <Days>120</Days>
          </Expiration>
      </Rule>
  </LifecycleConfiguration>
  ```
  
#### 多条规则筛选条件不重叠
如果希望不同的对象有不同的生命周期操作，则可以指定多个规则。例如如下生命周期配置有两个规则：
1. 规则1适用于对象名前缀为texta/的对象。指示120天后转为归档存储类型，并在360天后被删除。
2. 规则2适用于对象名前缀为textb/的对象。指示90天后转为低频访问存储类型，并在120天后被删除。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule1</ID>  
        <Prefix>texta/</Prefix>
        <Status>Enabled</Status>
        <Transition>   
            <Days>120</Days>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
        <Expiration>
            <Days>360</Days>
        </Expiration>
    </Rule>
    <Rule>
        <ID>sample-rule2</ID>  
        <Prefix>textb/</Prefix>
        <Status>Enabled</Status>
        <Transition>   
            <Days>90</Days>   
            <StorageClass>WARM</StorageClass>   
        </Transition>  
        <Expiration>
            <Days>120</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```
#### 多条规则筛选条件重叠
![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
规则重叠和冲突的介绍详见[多条生命周期规则之间重叠](https://support.huaweicloud.com/usermanual-obs/obs_41_0072.html#ZH-CN_TOPIC_0000001972178513__zh-cn_topic_0000001870567984_section139151017133111)。
**示例1：前缀重叠生命周期操作无冲突**
- 规则：规则1指定了一个前缀为空的筛选条件，表示桶内的所有对象。在对象创建120天后删除。规则2指定了一个前缀为typea/的筛选条件，表示前缀为typea/的对象。在对象创建90天后转为归档存储类型。
- 执行结果：生命周期操作没有冲突，前缀为typea/的对象，在对象创建90天后被转为归档存储类型，然后在对象创建120天后又被删除。
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule1</ID>  
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <Days>120</Days>
        </Expiration>
    </Rule>
    <Rule>
        <ID>sample-rule2</ID>  
        <Prefix>typea/</Prefix>
        <Status>Enabled</Status>
        <Transition>   
            <Days>90</Days>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
    </Rule>
</LifecycleConfiguration>
```
**示例2：前缀重叠和标签重叠，生命周期操作无冲突**
- 规则：规则1指定了一个前缀为ab、标签为（Key等于key1,Value 等于value1）的筛选条件。在对象创建120天后删除。规则2指定了一个前缀为abc、标签为（Key等于key1,Value 等于value1）、（Key等于key2,Value 等于value2）的筛选条件。在对象创建90天后转为归档存储类型。
- 执行结果：生命周期操作没有冲突，带前缀为abc和标签(Key等于key1,Value 等于value1）、（Key等于key2,Value 等于value2）的对象，在对象创建90天后被转为归档存储类型，然后在对象创建120天后又被删除。
  ```
  <LifecycleConfiguration>
      <Rule>
          <ID>sample-rule1</ID>  
          <Filter>
              <And>
                  <Prefix>ab</Prefix>
                  <Tag>
                      <Key>key1</Key>
                      <Value>value1</Value>
                  </Tag>
             </And>
          </Filter>
          <Status>Enabled</Status>
          <Expiration>
              <Days>120</Days>
          </Expiration>
      </Rule>
      <Rule>
          <ID>sample-rule2</ID>  
          <Filter>
              <And>
                  <Prefix>abc</Prefix>
                  <Tag>
                      <Key>key1</Key>
                      <Value>value1</Value>
                  </Tag>
                  <Tag>
                      <Key>key2</Key>
                      <Value>value2</Value>
                  </Tag>
              </And>
          </Filter>
          <Status>Enabled</Status>
          <Transition>   
              <Days>90</Days>   
              <StorageClass>COLD</StorageClass>   
          </Transition>  
      </Rule>
  </LifecycleConfiguration>
  ```
  
**示例3：前缀重叠生命周期操作冲突**
- 规则：规则1指定了一个前缀为空的筛选条件，表示桶内的所有对象。在对象创建90天后删除。规则2指定了一个前缀为typea/的筛选条件，表示前缀为typea/的对象。在对象创建120天后转为归档存储类型。
- 执行结果：生命周期操作有冲突，这种情况将不被允许配置 。
- 
  ```
  <LifecycleConfiguration>
      <Rule>
          <ID>sample-rule1</ID>  
          <Prefix></Prefix>
          <Status>Enabled</Status>
          <Expiration>
              <Days>90</Days>
          </Expiration>
      </Rule>
      <Rule>
          <ID>sample-rule2</ID>  
          <Prefix>typea/</Prefix>
          <Status>Enabled</Status>
          <Transition>   
              <Days>120</Days>   
              <StorageClass>COLD</StorageClass>   
          </Transition>  
      </Rule>
  </LifecycleConfiguration>
  ```
  
**示例** **4：前缀和标签重叠，生命周期操作冲突**
- 规则：规则1指定了一个前缀为abc、标签为（Key等于key1,Value 等于value1）的筛选条件。在对象创建90天后删除。规则2指定了一个前缀为ab、标签为（Key等于key1,Value 等于value1）、（Key等于key2,Value 等于value2）的筛选条件。在对象创建120天后转为归档存储类型。
- 执行结果：生命周期操作有冲突，这种情况不被允许配置。
- 
  ```
  <LifecycleConfiguration>
      <Rule>
          <ID>sample-rule1</ID>  
          <Filter>
              <And>
                  <Prefix>abc</Prefix>
                  <Tag>
                      <Key>key1</Key>
                      <Value>value1</Value>
                  </Tag>
             </And>
          </Filter>
          <Status>Enabled</Status>
          <Expiration>
              <Days>90</Days>
          </Expiration>
      </Rule>
      <Rule>
          <ID>sample-rule2</ID>  
          <Filter>
              <And>
                  <Prefix>ab</Prefix>
                  <Tag>
                      <Key>key1</Key>
                      <Value>value1</Value>
                  </Tag>
                  <Tag>
                      <Key>key2</Key>
                      <Value>value2</Value>
                  </Tag>
              </And>
          </Filter>
          <Status>Enabled</Status>
          <Transition>   
               <Days>120</Days>   
               <StorageClass>COLD</StorageClass>   
          </Transition>  
       </Rule>
  </LifecycleConfiguration>
  ```
  
#### 清理碎片
筛选条件指定了一个对象名前缀（texta/），以下生命周期规则将应用于对象名前缀为texta/ 的对象，例如 texta/file1.txt 和 texta/file2.txt。此规则的操作是对象碎片自生成后10天后删除。
```
</LifecycleConfiguration>
   <Rule>
        <ID>sample-rule</ID>
        <Prefix>texta/</Prefix>
        <Status>Enabled</Status>
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule>
</LifecycleConfiguration>
```
#### 开启或开启过（暂停）多版本的桶的生命周期规则
**示例一：对象历史版本定时转换存储类别和定时删除**
筛选条件指定了一个对象名前缀（prefix1/），以下生命周期规则将应用于对象名前缀为prefix1/的对象，例如 prefix1/file1.txt 和prefix1/file2.txt。
此规则指定了两种生命周期操作：在对象历史版本生成20天后将其转换为归档存储类型，在对象历史版本生成30天后将其删除。
```
<LifecycleConfiguration>
     <Rule>
         <ID>sample-rule</ID>
         <Prefix>prefix1/</Prefix>
         <Status>Enabled</Status>
         <NoncurrentVersionTransition>
             <NoncurrentDays>20</NoncurrentDays>
             <StorageClass>COLD</StorageClass>
         </NoncurrentVersionTransition>
         <NoncurrentVersionExpiration>
             <NoncurrentDays>30</NoncurrentDays>
         </NoncurrentVersionExpiration>
     </Rule>
 </LifecycleConfiguration>
```
**示例二：** **删除指定前缀的对象的过期删除标记**
筛选条件指定了一个对象名前缀（prefix1/），以下生命周期规则将应用于对象名前缀为prefix1/的对象，例如 prefix1/file1.txt 和prefix1/file2.txt。
如果前缀为prefix1/的对象所有版本都被删除，仅剩下唯一一个过期删除标记，则删除该过期删除标记。
```
</LifecycleConfiguration>
   <Rule>
        <ID>sample-rule</ID>
        <Prefix>prefix1/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
        </Expiration>
    </Rule>
</LifecycleConfiguration>
```
#### 禁用生命周期规则
设置Status为Disable，禁用规则。以下规则适用于桶中前缀为texta/的对象，在对象创建100天后其转换为归档存储类型。
xml：
```
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Status>Disabled</Status>
        <Prefix>texta/</Prefix>
        <Transition>   
            <Days>100</Days>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
    </Rule>
</LifecycleConfiguration>
```
