生命周期(Lifecycle)

 

Put Bucket Lifecycle

更新时间 2020-11-25

该接口用于创建或更新 Bucket 的生命周期(Lifecycle)设置。对象存储会按照用户所设置的生命周期(Lifecycle)规则,定期对所匹配的对象执行相应的操作。

目前支持的操作有:

  • Expiration:过期删除对象
  • Abort Incomplete Multipart Uploads:取消未完成的分段上传
  • Transition:变更存储级别

注意事项

  • 对象存储定义生命周期为 Bucket 的子资源,因此,只有 Bucket 的所有者才能调用该 API。
  • 对象存储以防用户误操作,对于新增或修改的生命周期规则,将于 24 小时后生效。

请求语法

PUT /?lifecycle HTTP/1.1
Host: <bucket-name>.jn1.is.shanhe.com
Date: <date>
Authorization: <authorization-string>

{
    "rule": [
        {
            "id": "delete-logs",
            "status": "enabled",
            "filter": {
                "prefix": "logs/"
            },
            "expiration": {
                "days": 90
            }
        },
        {
            "id": "delete-public-data",
            "status": "disabled",
            "filter": {
                "prefix": "public/"
            },
            "expiration": {
                "days": 90
            }
        },
        {
            "id": "abort-multipart-upload-in-data",
            "status": "enabled",
            "filter": {
                "prefix": "data/"
            },
            "abort_incomplete_multipart_upload": {
                "days_after_initiation": 3
            }
        },
        {
            "id": "change-storage-class-in-data",
            "status": "enabled",
            "filter": {
                "prefix": "data/"
            },
            "transition": {
                "storage_class": "STANDARD_IA",
                "days": 30
            }
        }
    ]
}

请求参数

无。

请求头

此接口仅包含公共请求头。关于公共请求头的更多信息,请参见 公共请求头

请求体

调用该 API 需携带如 请求语法 中的 Json 消息体。该消息体各字段说明如下:

名称 类型 说明 是否必须
rule List rule 的元素为生命周期规则。
id String 规则的标识符。可为任意 UTF-8 编码字符,长度不能超过 255 个字符。同一个 Bucket 的生命周期中,规则的标识符必须唯一。
status String 生命周期规则的状态。可设置为 enableddisabled,分别表示生效与禁用,可忽略大小写。
filter Dict 用于设置对象的过滤条件。
prefix String 对象名的前缀。匹配此前缀的对象应用此规则。默认值为空字符串,表示匹配整个 Bucket 中的对象。不支持正则表达式。
expiration Dict 用于配置过期删除对象的规则。设置该规则时,需指定 days 参数。
abort_incomplete_multipart_upload Dict 用于配置取消未完成的分段上传的规则。设置该规则时,需指定 days_after_initiation 参数。
transition Dict 用于配置变更存储级别的规则。设置该规则时,需指定 daysstorage_class 参数。
days Integer 距离对象最后更新指定天数后执行操作。
days_after_initiation Integer 在初始化分段上传的指定天数后执行操作。
storage_class Integer 待变更的存储级别。仅支持设置为 STANDARD_IA

说明

  • 生命周期规则总数不能超过 100 条,且每条规则中仅允许存在一种类型的操作。如:指定相同前缀的同一 Bucket 中,过期删除的规则只能有一条。
  • id 用来唯一标记生命周期规则,描述该规则的用途。不能与其他生命周期规则 id 相重复。
  • 设置 transition 规则时,days 需大于等于 30 天。

响应头

此接口仅包含公共响应头。关于公共响应头的更多信息,请参见 公共响应头

错误码

错误码 错误描述 HTTP 状态码
OK 成功设置或修改 Bucket 生命周期规则 200

其他错误码可参考 错误码列表

示例

请求示例

PUT /?lifecycle HTTP/1.1
Host: example.jn1.is.shanhe.com
Date: Sun, 16 Aug 2015 09:05:00 GMT
Content-Length: 66
Authorization: authorization string

{
    "rule": [
        {
            "id": "delete-logs",
            "status": "enabled",
            "filter": {
                "prefix": "logs/"
            },
            "expiration": {
                "days": 180
            }
        }
    ]
}

响应示例

HTTP/1.1 200 OK
Server: shanhe
Date: Sun, 16 Aug 2015 09:05:02 GMT
Content-Length: 0
Connection: close
x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b

SDK

此接口所对应的各语言 SDK 可参考 SDK 文档

这篇文档解决了您的问题吗?
0
0