开发者指南

API 文档

SDK 文档

PUT Bucket lifecycle

最近更新时间:2020-07-03 18:16:57

功能描述

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

  • 转换操作:定义对象转换为另一个存储类的时间。例如,您可以选择在对象创建30天后将其转换为低频存储(STANDARD_IA,适用于不常访问)存储类别。同时也支持将数据沉降到归档存储(Archive,成本更低,目前支持国内地域)。具体参数查看请求示例说明中 Transition 项。
  • 过期操作:指定 Object 的过期时间。COS 将会自动为用户删除过期的 Object。

细节分析

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

注意:

  • 同一条生命周期规则中不可同时支持 Days 和 Date 参数,请分成两条规则分别传入,具体请参见下文 实际案例
  • 开启了 多 AZ 配置的存储桶,不支持将多 AZ 存储类型沉降到单 AZ 存储类型。

请求

请求示例

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>
      <Prefix></Prefix>
    </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
Filter LifecycleConfiguration.Rule Filter 用于描述规则影响的 Object 集合 Container
Status LifecycleConfiguration.Rule 指明规则是否启用,枚举值:Enabled,Disabled String
ID LifecycleConfiguration.Rule 用于唯一地标识规则,长度不能超过255个字符 String
Prefix LifecycleConfiguration.Rule.Filter 指定规则所适用的前缀。匹配前缀的对象受该规则影响,Prefix 最多只能有一个 String
Expiration LifecycleConfiguration.Rule 规则过期属性 Container
Transition LifecycleConfiguration.Rule 规则转换属性,对象何时转换为 Standard_IA 或 Archive Container
Days LifecycleConfiguration.Rule.Transition
或 Expiration
指明规则对应的动作在对象最后的修改日期过后多少天操作:
  • 如果是 Transition,该字段有效值是非负整数
  • 如果是 Expiration,该字段有效值为正整数,最大支持3650天
  • Integer
    Date LifecycleConfiguration.Rule.Transition
    或 Expiration
    指明规则对应的动作在何时操作,支持2007-12-01T12:00:00.000Z2007-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 指明非当前版本对象何时转换为 STANDARD_IA 或 ARCHIVE Container
    NoncurrentDays LifecycleConfiguration.Rule
    .NoncurrentVersionExpiration
    或 NoncurrentVersionTransition
    指明规则对应的动作在对象变成非当前版本多少天后执行
  • 如果是 Transition,该字段有效值是非负整数
  • 如果是 Expiration,该字段有效值为正整数,最大支持3650天
  • Integer
    StorageClass LifecycleConfiguration.Rule.Transition
    或 NoncurrentVersionTransition
    指定 Object 转储到的目标存储类型,枚举值: STANDARD_IA,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>
        <Expiration>
          <Days>10</Days>
        </Expiration>
      </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****
    目录