更新时间:2024-10-17 GMT+08:00
分享

生命周期配置示例

如果您的使用方式为API或SDK,请参考xml示例,如果您的使用方式是控制台或Browser+可参考示例截图。

单一规则单个筛选条件

示例1:生命周期将应用于存储桶内的所有对象

如果需要适用于桶中的全部对象,需要指定一个空前缀。以下规则适用于桶中的全部对象,在对象创建100天后其转换为归档存储类型。

xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<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天后被删除。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <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:

 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
<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>

多条规则筛选条件重叠

规则重叠和冲突的介绍详见多条生命周期规则之间重叠

示例1:前缀重叠生命周期操作无冲突

  • 规则:规则1指定了一个前缀为空的筛选条件,表示桶内的所有对象。在对象创建120天后删除。规则2指定了一个前缀为typea/的筛选条件,表示前缀为typea/的对象。在对象创建90天后转为归档存储类型。
  • 执行结果:生命周期操作没有冲突,前缀为typea/的对象,在对象创建90天后被转为归档存储类型,然后在对象创建120天后又被删除。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<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天后又被删除。
     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
    <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天后转为归档存储类型。
  • 执行结果:生命周期操作有冲突,这种情况将不被允许配置 。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <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指定了一个前缀为ab、标签为(Key等于key1,Value 等于value1)的筛选条件。在对象创建90天后删除。规则2指定了一个前缀为abc、标签为(Key等于key1,Value 等于value1)、(Key等于key2,Value 等于value2)的筛选条件。在对象创建120天后转为归档存储类型。
  • 执行结果:生命周期操作有冲突,这种情况不被允许配置。
     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
    <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>90</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>120</Days>   
                 <StorageClass>COLD</StorageClass>   
            </Transition>  
         </Rule>
    </LifecycleConfiguration>
    

清理碎片

筛选条件制定了一个对象名前缀(texta/),以下生命周期规则将应用于对象名前缀为texta/ 的对象,例如 texta/file1.txt 和 texta/file2.txt。此规则的操作是对象碎片自生成后10天后删除。

 1
 2
 3
 4
 5
 6
 7
 8
 9
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天后将其删除。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<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/的对象所有版本都被删除,仅剩下唯一一个过期删除标记,则删除该过期删除标记。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
</LifecycleConfiguration>
   <Rule>
        <ID>sample-rule</ID>
        <Prefix>prefix1/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
        </Expiration>
    </Rule>
</LifecycleConfiguration>

禁用生命周期规则

设置Status为Disable,禁用规则。以下规则适用于桶中前缀为texta/的对象,在对象创建100天后其转换为归档存储类型。

xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<LifecycleConfiguration>
    <Rule>
        <ID>sample-rule</ID>  
        <Status>Disabled</Status>
        <Prefix>texta/</Prefix>
        <Transition>   
            <Days>100</Days>   
            <StorageClass>COLD</StorageClass>   
        </Transition>  
    </Rule>
</LifecycleConfiguration>

相关文档