本文档提供多个常见的生命周期配置示例,以便您更好地使用生命周期规则管理您存储空间(Bucket)内的文件(Object)。

指定筛选条件

每个生命周期规则都包含至少一个筛选条件,筛选条件可用于确定Bucket中适用生命周期规则的部分或所有Object。以下生命周期配置显示了如何指定筛选条件的示例。

  • 示例1

    在此生命周期配置规则中,筛选条件指定了prefix为doc/,此规则将应用于prefix为doc/的Object,例如doc/test1.txt和doc/test2.jpg等Object,并指定通过生命周期规则完成以下操作:

    • 在Object最后修改时间超过180天后将其转换为IA存储类型(Transition操作)。
    • 在Object最后修改时间超过365天后将其删除(Expiration操作)。
    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule0</ID>
        <Prefix>doc/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
          <Days>365</Days>
        </Expiration>
        <Transition>
          <Days>180</Days>
          <StorageClass>IA</StorageClass>
        </Transition>
      </Rule>
    </LifecycleConfiguration>
  • 示例2

    指定生命周期规则应用于某个Bucket内的所有Object(即prefix为空),并指示该Bucket内的所有Object在其最后修改时间超过300天后过期。

    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule1</ID>
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Expiration>
          <Days>300</Days>
        </Expiration>
      </Rule>
    </LifecycleConfiguration>
  • 示例3

    指定生命周期规则应用于某个Bucket内的所有Object(即prefix为空),并指示该Bucket内的所有最后修改时间早于2019年12月30日的Object过期。

    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule0</ID>
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Expiration>
          <CreatedBeforeDate>2019-12-30T00:00:00.000Z</CreatedBeforeDate>
        </Expiration>
      </Rule>
    </LifecycleConfiguration>

重叠的筛选条件

以下说明了筛选条件重叠的情况下,是否造成生命周期操作冲突的情况。

  • 示例1(冲突)

    假设您有包含两个规则,每个规则各指定一个标签筛选条件:

    • 规则1指定了基于标签的筛选条件(tag1/value1)。此规则指示OSS在Object最后修改时间超过180天后将其转换为IA存储类型。
    • 规则2指定了基于标签的筛选条件(tag2/value2)。此规则指示OSS在Object最后修改时间超过10天后使其过期。
    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule1</ID>
        <Prefix></Prefix>
        <Tag>
          <Key>tag1</Key>
          <Value>value1</Value>
        </Tag>
        <Status>Enabled</Status>
        <Transition>
          <Days>180</Days>
          <StorageClass>IA</StorageClass>
        </Transition>
      </Rule>
      <Rule>
        <ID>test-rule2</ID>
        <Prefix></Prefix>
        <Tag>
          <Key>tag2</Key>
          <Value>value2</Value>
        </Tag>
        <Status>Enabled</Status>
        <Expiration>
          <Days>10</Days>
        </Expiration>
      </Rule>
    </LifecycleConfiguration>
    说明 如果存在带有两个标签的Object,即两个规则都将应用于相同Object。在这种情况下,OSS将在Object最后修改时间超过10天后使其过期。该Object将被删除,因此转换存储类型操作不会起作用。
  • 示例2(无冲突)

    在本示例中,配置了包含两个指定重叠前缀的规则,如下所示。

    • 规则1指定了一个空prefix(即作用于所有Object),指示OSS在Object最后修改时间超过365后将其全部删除。
    • 规则2指定了一个prefix(test/),仅作用于部分Object,指示OSS在Object最后修改时间超过30天后将其转换为Archive存储类型。
    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule1</ID>
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Expiration>
          <Days>365</Days>
        </Expiration>
      </Rule>
      <Rule>
        <ID>test-rule2</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <Transition>
          <Days>30</Days>
          <StorageClass>Archive</StorageClass>
        </Transition>
      </Rule>
    </LifecycleConfiguration>

禁用生命周期规则

您可以临时禁用生命周期规则。例如,以下生命周期配置指定了两个规则,且在策略中选择启用规则1,禁用规则2。

  • 规则1指示OSS在带logs/前缀的Object创建后立即将其转换为Archive存储类型。
  • 规则2指示OSS在带documents/前缀的Object创建后立即将其转换为IA存储类型。
<LifecycleConfiguration>
  <Rule>
    <ID>test-rule1</ID>
    <Prefix>logs/</Prefix>
    <Status>Disabled</Status>
    <Transition>
      <Days>1</Days>
      <StorageClass>IA</StorageClass>
    </Transition>
  </Rule>
  <Rule>
    <ID>test-rule2</ID>
    <Prefix>documents/</Prefix>
    <Status>Enabled</Status>
    <Transition>
      <Days>1</Days>
      <StorageClass>Archive</StorageClass>
    </Transition>
  </Rule>
</LifecycleConfiguration>

结合版本控制的生命周期规则

假设您有一个启用了版本控制的Bucket,即该Bucket内的每个Object都有一个当前版本以及零个或零个以上的非当前版本。有关版本控制的更多信息请参见版本控制介绍

  • 示例1

    您希望在Object变为非当前版本60天后将其转换为Archive存储类型,在Object变为非当前版本90天后将其删除,并且在Object最后修改时间超过120天后降低当前版本的访问频率,因此您可能会选择将这些Object转化为IA存储类型。您可以配置以下生命周期规则来实现更低的存储成本:

    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule0</ID>
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Transition>
          <Days>10</Days>
          <StorageClass>IA</StorageClass>
        </Transition>
        <NoncurrentVersionTransition>
          <NoncurrentDays>60</NoncurrentDays>
          <StorageClass>Archive</StorageClass>
        </NoncurrentVersionTransition>
        <NoncurrentVersionExpiration>
          <NoncurrentDays>90</NoncurrentDays>
        </NoncurrentVersionExpiration>
      </Rule>
    </LifecycleConfiguration>
  • 示例2

    当Object仅剩一个删除标记版本,其余版本均已删除的情况下执行Expiration过期操作,则该删除标记即为过期删除标记。移除过期删除标记示例如下:

    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule0</ID>
        <Prefix></Prefix>
        <Status>Enabled</Status>
        <Expiration>
          <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
        </Expiration>
      </Rule>
    </LifecycleConfiguration>