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

指定筛选条件

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

  • 示例1

    在此生命周期配置规则中,筛选条件指定了prefix为doc/,此规则将应用于prefix为doc/的Object,例如doc/test1.txtdoc/test2.jpg等Object,并指定在Object最后修改时间超过180天后将其转换为IA存储类型(Transition操作)、在Object最后修改时间超过365天后将其删除(Expiration操作)。

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <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>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      rule1
  • 示例2

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

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <LifecycleConfiguration>
        <Rule>
          <ID>test-rule1</ID>
          <Prefix></Prefix>
          <Status>Enabled</Status>
          <Expiration>
            <Days>300</Days>
          </Expiration>
        </Rule>
      </LifecycleConfiguration>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      rule2
  • 示例3

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

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <LifecycleConfiguration>
        <Rule>
          <ID>test-rule0</ID>
          <Prefix></Prefix>
          <Status>Enabled</Status>
          <Expiration>
            <CreatedBeforeDate>2021-12-30T00:00:00.000Z</CreatedBeforeDate>
          </Expiration>
        </Rule>
      </LifecycleConfiguration>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      rule3

重叠的筛选条件

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

  • 示例1(冲突)

    假设您指定了两条生命周期规则,规则详情如下:
    • 规则1:指定了基于标签的筛选条件(tag1/value1),并指定Object在其最后修改时间超过180天后转换为IA存储类型。
    • 规则2:指定了基于标签的筛选条件(tag2/value2),并指定Object在其最后修改时间超过10天后过期。

    如果存在带有两组标签的Object,即两个规则都将应用于相同Object。在这种情况下,Object将在其最后修改时间超过10天后过期。Object被删除后,转换存储类型操作将不再有效。因此,仅规则2中指定的过期行为生效。

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <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>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      • 规则1rule4
      • 规则2rule5
  • 示例2(无冲突)

    假设您配置了包含两个指定重叠前缀的生命周期规则,规则详情如下:
    • 规则1:指定名为test/的Prefix,并指定Object距其最后修改时间超过30天后转换为Archive存储类型。
    • 规则2:指定针对整个Bucket(即Prefix为空),并指定Object距其最后修改时间超过365天后全部删除。

    由于规则无冲突,因此规则1和规则2指定的行为均生效。

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <LifecycleConfiguration>
        <Rule>
          <ID>test-rule1</ID>
          <Prefix>test/</Prefix>
          <Status>Enabled</Status>
          <Transition>
            <Days>30</Days>
            <StorageClass>Archive</StorageClass>
          </Transition>
        </Rule>
       <Rule>
          <ID>test-rule2</ID>
          <Prefix></Prefix>
          <Status>Enabled</Status>
          <Expiration>
            <Days>365</Days>
          </Expiration>
        </Rule>  
      </LifecycleConfiguration>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      • 规则1rule7
      • 规则2rule6

禁用生命周期规则

本示例指定了两条生命周期规则。其中规则1指定前缀为logs/的Object,并在其创建100天后转换为IA存储类型。规则2指定前缀为documents/的Object,并在其创建50天后转换为Archive存储类型。然后在策略中选择禁用规则1,启动规则2。

应用以上策略后,OSS仅对<Status>处于Enabled(启动)状态的规则生效。即所有前缀为documents/的Object在其创建50天后转换为Archive存储类型。

以上生命周期配置规则的XML以及控制台配置示例如下:

  • XML
    <LifecycleConfiguration>
      <Rule>
        <ID>test-rule1</ID>
        <Prefix>logs/</Prefix>
        <Status>Disabled</Status>
        <Transition>
          <Days>100</Days>
          <StorageClass>IA</StorageClass>
        </Transition>
      </Rule>
      <Rule>
        <ID>test-rule2</ID>
        <Prefix>documents/</Prefix>
        <Status>Enabled</Status>
        <Transition>
          <Days>50</Days>
          <StorageClass>Archive</StorageClass>
        </Transition>
      </Rule>
    </LifecycleConfiguration>
  • 控制台
    说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
    • 规则1rule8
    • 规则2rule9

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

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

  • 示例1

    您可以通过配置以下规则,实现当前版本Object距其最后修改时间超过10天后转换为IA存储类型,Object成为非当前版本60天后转换为Archive存储类型,Object成为非当前版本90天后删除。

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <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>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      rule9
  • 示例2

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

    以上生命周期配置规则的XML以及控制台配置示例如下:

    • XML
      <LifecycleConfiguration>
        <Rule>
          <ID>test-rule0</ID>
          <Prefix></Prefix>
          <Status>Enabled</Status>
          <Expiration>
            <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker>
          </Expiration>
        </Rule>
      </LifecycleConfiguration>
    • 控制台
      说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
      rule10

清理过期碎片

通过生命周期规则指定在分片上传过程中,前缀为logs的碎片(即未执行CompleteMultipartUpload的Object)5天后过期。

以上生命周期配置规则的XML以及控制台配置示例如下:

  • XML
    <LifecycleConfiguration>
      <Rule>
        <ID>lifecyclerule1</ID>
        <Prefix>logs/</Prefix>
        <Status>Enabled</Status>
        <AbortMultipartUpload>
          <Days>5</Days>
        </AbortMultipartUpload>
      </Rule>
    </LifecycleConfiguration>
  • 控制台
    说明 您还可以通过控制台配置符合以上条件的生命周期规则,配置详情如下图所示。具体操作,请参见设置生命周期规则
    rule11