生命周期元素说明
本章节以一个典型的配置示例为例,说明生命周期规则的元素组成,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<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个关键元素组成:
规则元数据
规则元数据说明规则ID以及规则状态:
|
元素 |
描述 |
|
|---|---|---|
|
规则元数据 |
ID |
元素解释: 规则ID,ID元素唯一地标识一条规则。 取值范围: 长度大于0且不超过255的字符串,只能由大写或小写的英文字母、数字、英文句号(.)、下划线(_)和连字符(-)组成。 默认取值: 如果未指定ID元素或者该值为空时,OBS会自动生成一个唯一ID。 |
|
Status |
元素解释: 规则状态。如果规则处于禁用状态,则OBS不会执行规则中指定的任何操作。 取值范围:
默认取值: 无 |
|
规则的对象筛选条件
规则的对象筛选条件说明生命周期规则的操作目标是哪些对象:
|
元素 |
含义 |
|||
|---|---|---|---|---|
|
规则的对象筛选条件 (Filter) |
Prefix |
元素解释: 对象名前缀,以指定前缀开头的对象可以匹配到当前规则。 如果您指定空的前缀,该规则将应用于桶中的所有对象。 约束限制:
取值范围: 长度大于等于0且不超过1024的字符串。 默认取值: 如不指定,默认为空。 |
||
|
Tag |
元素解释: 对象标签,用以标识带有该标签的对象,可以匹配到当前规则。 约束限制:
示例如下,规定对象标签键名为key1,键值为value1的对象,在最后一次修改后120天删除。
默认取值: 如果不指定,默认为空。 |
|||
|
Prefix和Tag组合使用 |
对象名前缀、对象标签二者组合筛选对象,此时需要使用逻辑And来组合筛选条件。And中可包含大于等于2个筛选条件,Prefix是必选且只能有1个,Tag是可选且最多可配置10个。 示例如下,规定对象标签键名为key1,键值为value1,且前缀为texta/的对象,在最后一次修改后120天删除。
|
|||
规则执行的动作和时间
下表参数说明在什么时间点开始执行生命周期规则,以及针对目标对象执行的动作是什么:
|
操作 |
说明 |
相关子元素 |
子元素说明 |
|---|---|---|---|
|
Expiration |
删除对象
说明:
Expiration操作不会删除未合并的多段对象。 |
Days (Days、Date和ExpiredObjectDeleteMarker三选一) |
元素解释: 指定生命周期规则在距离对象最后一次修改多少天后执行过期删除操作。 约束限制:
取值范围: 正整数,单位:天。 默认取值: 无 |
|
Date (Days、Date和ExpiredObjectDeleteMarker三选一) |
元素解释: 指定最后一次修改时间在该日期之前的对象执行删除对象操作。 约束限制:
默认取值: 无 |
||
|
删除过期删除标记 |
ExpiredObjectDeleteMarker (Days、Date和ExpiredObjectDeleteMarker三选一) |
元素解释: 是否删除过期删除标记。 约束限制: 不支持使用对象标签(Tag)作为筛选条件。 取值范围:
默认取值: 无 |
|
|
Transition |
转换对象存储类别 |
Days (Days与Date二选一) |
元素解释: 表示在对象在距离对象最后一次修改多少天后转换对象存储类别。 约束限制: 仅适用于对象的当前版本。 取值范围: 单位:天。
默认取值: 无 |
|
Date (Days与Date二选一) |
元素解释: 指定最后一次修改时间在该日期之前的对象执行存储类别转换。 约束限制:
默认取值: 无 |
||
|
StorageClass |
元素解释: 表示对象将被修改成的目标存储类别。 取值范围:
默认取值: 无 |
||
|
AbortIncompleteMultipartUpload |
清理碎片 |
DaysAfterInitiation |
元素解释: 指定生命周期规则在碎片生成后多久执行过期删除操作。 约束限制: 不支持使用对象标签(Tag)作为筛选条件。 取值范围: 正整数,单位:天。 默认取值: 无 |
|
NoncurrentVersionExpiration |
删除对象历史版本 |
NoncurrentDays |
元素解释: 表示对象版本在成为历史版本之后第几天时删除。 约束限制:
取值范围: 正整数,单位:天。 默认取值: 无 |
|
NoncurrentVersionTransition |
转换对象历史版本的存储类别 |
NoncurrentDays |
元素解释: 表示对象版本在成为历史版本之后第几天时转换对象。 约束限制:
取值范围: 单位:天。
默认取值: 无 |
|
StorageClass |
元素解释: 表示对象将被修改成的目标存储类别。 取值范围:
默认取值: 无 |
单条生命周期规则中,days和date的选择必须统一,即如果Expiration选择搭配Days,则Transition也必须要选择Days,同理如果Expiration选择搭配Date,则Transition也必须要选择Date。