
# 配置生命周期规则
#### 操作场景
本章节将介绍如何配置生命周期规则。
#### 约束与限制
- 生命周期规则目前仅支持根据前缀和[对象标签](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。
  
  
  ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
  如果您使用[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)或者OBS Browser+配置生命周期规则，无需先获取再添加，可直接使用在界面上进行追加操作，系统会在后台自动为您执行获取后追加的操作。详情可参见[使用OBS控制台配置生命周期]和[使用OBS Browser+配置生命周期]。
  
 
#### 配置生命周期规则操作步骤
OBS支持使用[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、API、OBS SDK、OBS Browser+设置生命周期规则。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在OBS管理控制台桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧导航栏单击"数据管理 \> 生命周期规则"，进入"生命周期规则"界面。
4. 单击"创建"，系统弹出创建生命周期规则对话框。
5. 配置"基本信息"。 
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002376623857.png "点击放大")
   表1"基本信息"参数说明 
   | 参数名称 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   |:---|:---|
   | 状态   | 是否启用生命周期规则。 - 开关开启，启用生命周期规则，受规则影响的对象将在指定天数后转换存储类别/自动删除/删除碎片/清理无历史版本的删除标记。  - 开关关闭，表示不启用生命周期规则。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 规则名称 | 生命周期规则的名称。 命名规则如下： - 长度不超过255个字符。  - 只能由大写或小写的英文字母、数字、英文句号（.）、下划线（_）和连字符（-）组成。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 范围   | 使用对象名称作为筛选条件，明确生命周期规则适用的对象范围。 - 对象前缀：配置对象前缀后，桶内满足该前缀的对象将受生命周期规则管理。  - 所有对象：桶内所有对象都将受生命周期规则管理。   **配置范围时，需要注意多条生命周期规则之间重叠的情况，重叠的规则必须要满足[重叠规则约束](https://support.huaweicloud.com/zh-cn/usermanual-obs/obs_41_0072.html#ZH-CN_TOPIC_0000001972178513__zh-cn_topic_0000001870567984_section139151017133111)，否则将会因规则冲突导致生命周期规则配置失败。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 前缀   | 当范围选择"对象前缀"时，需配置对象名称前缀，表示桶内满足该前缀的对象将受生命周期规则管理。 对象名前缀规则：不能包括**\<\>**特殊字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 标签   | 可选参数。 使用对象标签作为筛选条件，携带该标签的对象将受生命周期规则管理。 - 键名(Key)约束： - 最大长度为128个字符，可用UTF-8格式表示的字母（含中文）、数字、空格，以及以下字符："_ . : = + - @"。  - 区分大小写，存在多条Tag时，Tag的键名(Key)不能重复。  - 不能为空。    - 键值（Value）约束： - 最大长度为255个字符，可用UTF-8格式表示的字母（含中文）、数字、空格，以及以下字符："_ . : /= + - @"。  - 区分大小写。  - 可以为空。     支持最多配置10个标签筛选条件。 **使用对象标签作为筛选条件后，无法启用"碎片过期删除规则设置"和"清理无历史版本的删除标记"。** 关于给对象添加标签，详情请参见[对象标签](https://support.huaweicloud.com/usermanual-obs/obs_41_0054.html#ZH-CN_TOPIC_0000001945056570)。 |
      
   
   
6. 配置"当前版本"和"历史版本"，指定在对象最后一次更新多少天后转换对象存储类别或删除对象。 
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002342625936.png "点击放大")
   "历史版本"配置项默认不展示，只有当桶开启过"多版本控制"，即多版本控制状态为"已启用"或"暂停"时才会展示。
   表2"当前版本"和"历史版本"的配置项 
   | 配置项    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   |:---|:---|
   | 状态     | 是否启用"当前版本"或"历史版本"的配置。 - 开关打开，表示启用配置，**最多配置4条记录**。  - 开关关闭，表示不启用配置。                                                                                                                                                                                                                                                                                 |
   | 低频访问存储 | 指定在对象最后一次更新后多少天，受规则影响的对象的存储类别将转换为低频访问存储。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 归档存储   | 指定在对象最后一次更新后多少天，受规则影响的对象的存储类别将转换为归档存储。 - 如果同时设置转换为低频访问存储和转换为归档存储，则转换为归档存储的时间要比转换为低频访问存储的时间长。  - 如果单独设置转换为归档存储，则没有时间限制。                                                                                                                                                                                                                         |
   | 深度归档存储 | 指定在对象最后一次更新后多少天，受规则影响的对象的存储类别将转换为深度归档存储。 - 如果同时设置转换为低频访问存储和转换为深度归档存储，则转换为深度归档存储的时间要比转换为低频访问存储的时间长。  - 如果同时设置转换为归档存储和转换为深度归档存储，则转换为深度归档存储的时间要比转换为归档存储的时间长。  - 如果单独设置转换为深度归档存储，则没有时间限制。   |
   | 过期删除   | 指定在对象最后一次更新后多少天，受规则影响的对象将被自动OBS删除。 **过期时间必须大于转换存储类别时间的最大值，且必须为整数。** **当桶未启用多版本控制时，对象在过期时间后被删除，将无法找回，请谨慎设置。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      
   **转换对象存储类别或删除对象会涉及费用变化**，具体如下：
   - 由于删除对象会减少存储用量以及不同存储类别之间存在价格差异，因此费用也会发生变化。
   
   - 低频访问存储、归档存储或深度归档存储类别对象，分别有30天、90天、180天最低存储时间限制，早于最低存储时间删除对象或转换存储类别，需要补足剩余天数的存储费用。
   
   - 通过生命周期转存储类别时，会产生对应的请求次数费用。
   
   - 关于生命周期规则计费，请参见[特殊场景计费](https://support.huaweicloud.com/price-obs/obs_42_0016.html)。
   
   
   ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
   - "当前版本"与"历史版本"是针对"多版本控制"而言的。如果开启了"多版本控制"功能，同名的对象上传到同一路径下时，则会产生不同的版本号。最新版本的对象称之为"当前版本"，历史时间上传的对象称之为"历史版本"。当前版本和历史版本的详细介绍请参见[多版本控制](https://support.huaweicloud.com/usermanual-obs/obs_03_0327.html#ZH-CN_TOPIC_0000002581737122)。
   
   - "当前版本"与"历史版本"至少配置一个，也可以两个同时配置。
    
   
   
7. 配置"碎片过期规则设置"，指定碎片在产生多少天后被删除。 
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002342785760.png)
   - 状态：是否启用"碎片过期规则设置"。开关打开，表示启用配置；开关关闭，表示不启用配置。
   
   - 设置天数：指定桶内碎片在产生后多少天自动被删除。
   
   
   ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
   桶中不完整的数据被称为碎片，碎片通常是由于数据上传失败而产生。
   
   
8. 配置"清理无历史版本的删除标记"。 
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002376743761.png)
   无历史版本的删除标记是指对象的所有历史版本被删除后，对象仅剩余的1个删除标记。此操作将清理该删除标记，清理后有利于提高性能。
   **状态**：是否启用"清理无历史版本的删除标记"。开关打开，表示启用；开关关闭，表示不启用。
   **如果当前版本配置了过期删除，则不支持配置清理无历史版本的删除标记。**
   
   
9. 勾选"我已确认以上生命周期规则设置，以及可能会产生的费用。"。
10. 单击"确定"，完成生命周期规则配置。
 
#### 使用OBS API
[设置桶的生命周期](https://support.huaweicloud.com/api-obs/obs_04_0034.html)
#### 使用OBS SDK
| [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) |
|---|---|---|---|---|---|---|---|---|---|
   
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 选中待配置的桶，单击"更多 \> 生命周期规则"，如[图1]所示。
   
   图1生命周期规则   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001965701013.png "点击放大")
   
   
3. 在"生命周期规则"窗口中单击"创建"，如[图2]所示。
   
   图2创建生命周期规则   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001938702016.png "点击放大")
   
   
   
4. 配置生命周期规则。 
   表3生命周期规则参数说明 
   | 参数名称      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 状态        | 是否启用生命周期规则。 - 开关开启，启用生命周期规则，受规则影响的对象将在指定天数后转换存储类别/自动删除。  - 开关关闭，表示不启用生命周期规则。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 规则名称      | 生命周期规则的名称。 命名规则如下： - 长度不超过255个字符。  - 只能由大写或小写的英文字母、数字、英文句号（.）、下划线（_）和连字符（-）组成。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 策略        | 使用对象名称作为筛选条件，明确生命周期规则适用的对象范围。 - **按前缀配置**：配置对象前缀后，桶内满足该前缀的对象将受生命周期规则管理。  - **配置到整个桶**：桶内所有对象都将受生命周期规则管理。   选择策略时，需要注意以下情况可能配置不成功： - 当按前缀配置时，如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系，OBS会将两条规则视为同一条，而禁止您配置本条规则。例如，系统中已存在指定前缀名为"abc"的规则，则不允许再配置指定前缀包含"abc"字段的规则。  - 如果已存在按前缀配置的生命周期规则，则不允许再新增配置到整个桶的规则。  - 如果已存在配置到整个桶的生命周期规则，则不允许再新增按前缀配置的规则，此时界面的"创建"按钮会变成灰色，表示不可操作。   |
   | 前缀        | 当范围选择"按前缀配置"时，需配置对象名称前缀，表示桶内满足该前缀的对象将受生命周期规则管理。 对象名前缀规则： - 不能包括**\\:\*?"\<\>\|**特殊字符。  - 不能以/开头。  - 不能两个/相邻。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 转换为低频访问存储 | 指定在对象最后一次更新后多少天，受规则影响的对象的存储类别将转换为低频访问存储。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 转换为归档存储   | 指定在对象最后一次更新后多少天，受规则影响的对象的存储类别将转换为归档存储。 - 如果同时设置转换为低频访问存储和转换为归档存储，则转换为归档存储的时间要比转换为低频访问存储的时间长。  - 如果单独设置转换为归档存储，则没有时间限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 过期删除      | 指定在对象最后一次更新后多少天，受规则影响的对象将被自动OBS删除。 **过期时间必须大于转换存储类别时间的最大值，且必须为整数。** **当桶未启用多版本控制时，对象在过期时间后被删除，将无法找回，请谨慎设置。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      
   例如：
   您于2022年1月7日在OBS中存储了以下几个文件：
   - log/test1.log
   
   - log/test2.log
   
   - doc/example.doc
   
   - doc/good.txt
   
   
   您又于2022年1月10日在OBS中存储了以下几个文件：
   - log/clientlog.log
   
   - log/serverlog.log
   
   - doc/work.doc
   
   - doc/travel.txt 在2022年1月10日设置前缀为"log/"的对象，过期删除时间设置为一天，OBS将会在2022年1月12日自动删除"log/clientlog.log"、"log/serverlog.log"、"log/test1.log"和"log/test2.log"这四个对象。
     在某天设置前缀为"log"的对象，转换为低频访问存储的时间设置为30天，转换为归档存储的时间设置为60天，过期删除的时间设置为100天，OBS将会第31天将"log/clientlog.log"、"log/serverlog.log"、"log/test1.log"和"log/test2.log"这四个对象转换为低频访问存储，第61天后转换为归档存储，第101天后自动删除这些对象。
     
   
   
   
   
5. 在"生命周期管理"对话框中单击"确认"，保存当前的生命周期规则。
 
#### 为单个对象设置对象生命周期
如果您的使用场景需要针对单个对象设置删除时间，可以在对象上传时，为对象设置过期删除时间。如果开启了多版本，可以在上传时为每一个对象版本设置过期删除时间。对象生命周期只能作用于对象版本，不作用于删除标记和碎片。
与在桶上设置生命周期不同，对象生命周期只能作用于当前对象，且只能设置定时删除，不能设置存储类别转换。如果桶生命周期与对象生命周期冲突，则优先执行对象生命周期。
OBS支持使用API、SDK设置和查看对象生命周期，[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、OBS Browser+、obsutil暂不支持：
#### 使用API
设置对象生命周期：
- [PUT上传对象](https://support.huaweicloud.com/api-obs/obs_04_0080.html)（简单上传）、[POST上传对象](https://support.huaweicloud.com/api-obs/obs_04_0081.html)（表单上传）时设置x-obs-expires请求头域
- [修改对象元数据-SetObjectMetadata](https://support.huaweicloud.com/api-obs/obs_04_0091.html)时设置x-obs-expires请求头域
查看对象生命周期：
- [获取对象元数据-HeadObject](https://support.huaweicloud.com/api-obs/obs_04_0084.html)接口的响应头x-obs-expiration
 
#### 使用SDK
- 设置对象生命周期：使用SDK上传对象接口设置过期删除参数（expires），或者使用设置对象元数据接口设置x-obs-expires请求头域。
- 查看对象生命周期：使用获取对象元数据接口获取响应头x-obs-expiration。
|    上传对象     | [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0600.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0501.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0400.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_23_0401.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0501.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0401.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0401.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0401.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0401.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0401.html) |
|---|---|---|---|---|---|---|---|---|---|---|
| **设置对象元数据** | [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0806.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0921.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0404.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0920.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0706.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0407.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0606.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0405.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0406.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0602.html) |
| **获取对象元数据** | [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0801.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0920.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0601.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0508.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0701.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0601.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0601.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0601.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0601.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0601.html) |
   
