PUT Bucket lifecycle

最后更新时间:2021-08-12 12:03:57

    功能描述

    COS 支持用户以生命周期配置的方式来管理 Bucket 中 Object 的生命周期。生命周期配置包含一个或多个将应用于一组对象规则的规则集 (其中每个规则为 COS 定义一个操作)。
    这些操作分为以下两种:

    • 转换操作:定义对象转换为另一个存储类的时间。例如,您可以选择在对象创建30天后将其转换为低频存储(STANDARD_IA,适用于不常访问)存储类别。同时也支持将数据沉降到智能分层存储(INTELLIGENT_TIERING,访问模式不固定)和归档存储(ARCHIVE,成本更低)。具体参数查看请求示例说明中 Transition 项。
    • 过期操作:指定 Object 的过期时间。COS 将会自动为用户删除过期的 Object。
    推荐使用 API Explorer
    点击调试
    API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

    细节分析

    PUT Bucket lifecycle 用于为 Bucket 创建一个新的生命周期配置。如果该 Bucket 已配置生命周期,使用该接口创建新的配置的同时则会覆盖原有的配置。

    注意:

    • 同一条生命周期规则中不可同时支持 Days 和 Date 参数,请分成两条规则分别传入,具体请参见下文 实际案例
    • 每个存储桶最多可添加1000条生命周期规则。

    请求

    请求示例

    PUT /?lifecycle HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Content-Length: length
    Date: GMT Date
    Authorization: Auth String 
    Content-MD5: MD5
    
    说明:

    Authorization: Auth String(详情请参见 请求签名 文档)。

    请求头

    此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

    请求体

    该 API 接口请求的请求体具体节点内容为:

    <LifecycleConfiguration>
        <Rule>
              <ID></ID>
              <Filter>
                    <And>
                          <Prefix></Prefix>
                          <Tag>
                                <Key></Key>
                                <Value></Value>
                          </Tag>
                    </And>
              </Filter>
              <Status></Status>
              <Transition>
                    <Days></Days>
                    <StorageClass></StorageClass>
              </Transition>
              <NoncurrentVersionExpiration>
                    <NoncurrentDays></NoncurrentDays>
              </NoncurrentVersionExpiration>
        </Rule>
        <Rule>
              <ID></ID>
              <Filter>
                    <Prefix></Prefix>
              </Filter>
              <Status></Status>
              <Transition>
                    <Days></Days>
                    <StorageClass></StorageClass>
              </Transition>
              <NoncurrentVersionTransition>
                    <NoncurrentDays></NoncurrentDays>
                    <StorageClass></StorageClass>
              </NoncurrentVersionTransition>
        </Rule>
        <Rule>
              <ID></ID>
              <Filter>
                    <Prefix></Prefix>
              </Filter>
              <Status></Status>
              <Expiration>
                    <ExpiredObjectDeleteMarker></ExpiredObjectDeleteMarker>
              </Expiration>
              <NoncurrentVersionExpiration>
                    <NoncurrentDays></NoncurrentDays>
              </NoncurrentVersionExpiration>
        </Rule>
    </LifecycleConfiguration>
    

    具体内容描述如下:

    节点名称(关键字) 父节点 描述 类型 是否必选
    LifecycleConfiguration 生命周期配置 Container
    Rule LifecycleConfiguration 规则描述 Container
    ID LifecycleConfiguration.Rule 用于唯一地标识规则,长度不能超过255个字符 String
    Filter LifecycleConfiguration.Rule Filter 用于描述规则影响的 Object 集合 Container
    And LifecycleConfiguration.Rule
    .Filter
    对象筛选器中的一个子集,仅当需要指定多种筛选规则时才需要
    此元素,例如:同时指定 Prefix 和 Tag 筛选,或同时指定多个 Tag 筛选。
    Container
    Prefix LifecycleConfiguration.Rule
    .Filter.And
    指定规则所适用的前缀。匹配前缀的对象受该规则影响,Prefix
    最多只能有一个
    String
    Tag LifecycleConfiguration.Rule
    .Filter.And
    标签集合,最多支持10个标签 Container
    Key LifecycleConfiguration.Rule
    .Filter.And.Tag
    标签的 Key,长度不超过128字节,支持英文字母、数字、空格、加号、
    减号、下划线、等号、点号、冒号、斜线
    String
    Value LifecycleConfiguration.Rule
    .Filter.And.Tag
    标签的 Value,长度不超过256字节, 支持英文字母、数字、空格、加号、
    减号、下划线、等号、点号、冒号、斜线
    String
    Status LifecycleConfiguration.Rule 指明规则是否启用,枚举值:Enabled,Disabled String
    Expiration LifecycleConfiguration.Rule 规则过期属性 Container
    Transition LifecycleConfiguration.Rule 规则转换属性,用于描述对象何时进行存储类型的转换和转换的存储类型 Container
    Days LifecycleConfiguration.Rule
    .Transition 或 Expiration
    指明规则对应的动作在对象最后的修改日期过后多少天操作:
  • 如果是 Transition,该字段有效值是非负整数
  • 如果是 Expiration,该字段有效值为正整数,最大支持3650天
  • Integer
    Date LifecycleConfiguration.Rule
    .Transition 或 Expiration
    指明规则对应的动作在何时操作,支持2007-12-01T12:00:00.000Z
    2007-12-01T00:00:00+08:00这两种格式
    String
    ExpiredObjectDeleteMarker LifecycleConfiguration.Rule
    .Expiration
    删除过期对象删除标记,枚举值 true,false String
    AbortIncompleteMultipartUpload LifecycleConfiguration.Rule 设置允许分片上传保持运行的最长时间 Container
    DaysAfterInitiation LifecycleConfiguration.Rule
    .AbortIncompleteMultipartUpload
    指明分片上传开始后多少天内必须完成上传 Integer
    NoncurrentVersionExpiration LifecycleConfiguration.Rule 指明非当前版本对象何时过期 Container
    NoncurrentVersionTransition LifecycleConfiguration.Rule 指明非当前版本对象何时进行存储类型的转换和转换的存储类型 Container
    NoncurrentDays LifecycleConfiguration.Rule
    .NoncurrentVersionExpiration
    或 NoncurrentVersionTransition
    指明规则对应的动作在对象变成非当前版本多少天后执行
  • 如果是 Transition,该字段有效值是非负整数
  • 如果是 Expiration,该字段有效值为正整数,最大支持3650天
  • Integer
    StorageClass LifecycleConfiguration.Rule
    .Transition 或
    NoncurrentVersionTransition
    指定 Object 沉降后的存储类型,枚举值: STANDARD_IA,INTELLIGENT_TIERING,ARCHIVE,DEEP_ARCHIVE String

    响应

    响应头

    此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

    响应体

    该响应体为空。

    错误码

    此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

    实际案例

    请求

    PUT /?lifecycle HTTP/1.1
    Host:examplebucket-1250000000.cos.ap-beijing.myqcloud.com
    Date: Wed, 16 Aug 2017 11:59:33 GMT
    Authorization:q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1502855771;1502935771&q-key-time=1502855771;1502935771&q-header-list=content-md5;host&q-url-param-list=lifecycle&q-signature=f3aa2c708cfd8d4d36d658de56973c9cf1c2****
    Content-MD5: LcNUuow8OSZMrEDnvndw1Q==
    Content-Length: 348
    Content-Type: application/x-www-form-urlencoded
    
    <LifecycleConfiguration>
        <Rule>
              <ID>id1</ID>
              <Filter>
                    <Prefix>documents/</Prefix>
              </Filter>
              <Status>Enabled</Status>
              <Transition>
                    <Days>100</Days>
                    <StorageClass>ARCHIVE</StorageClass>
              </Transition>
        </Rule>
        <Rule>
              <ID>id2</ID>
              <Filter>
                    <Prefix>logs/</Prefix>
              </Filter>
              <Status>Enabled</Status>
              <Transition>
                    <Days>10</Days>
                    <StorageClass>STANDARD_IA</StorageClass>
              </Transition>
        </Rule>
    </LifecycleConfiguration>
    

    响应

    HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 0
    Date: Wed, 16 Aug 2017 11:59:33 GMT
    Server: tencent-cos
    x-cos-request-id: NTk5NDMzYTRfMjQ4OGY3Xzc3NGRf****