PUT Bucket lifecycle

最后更新时间:2020-09-07 14:42:35

    功能描述

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

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

    细节分析

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

    注意:

    同一条生命周期规则中不可同时支持 Days 和 Date 参数,请分成两条规则分别传入,具体请参见下文 实际案例

    请求

    请求示例

    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 规则转换属性,对象何时转换为 Standard_IA 或 Archive 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 指明非当前版本对象何时转换为 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****

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助