Put Bucket Lifecycle
该接口用于创建或更新 Bucket 的生命周期(Lifecycle)设置。QingStor 对象存储会按照用户所设置的生命周期(Lifecycle)规则,定期对所匹配的对象执行相应的操作。
目前支持的操作有:
-
Expiration:过期删除对象
-
Abort Incomplete Multipart Uploads:取消未完成的分段上传
-
Transition:变更存储级别
注意事项
-
QingStor 对象存储定义只有 Bucket 的所有者才能调用该 API。
-
QingStor 对象存储以防用户误操作,对于新增或修改的生命周期规则,将于 24 小时后生效。
请求语法
PUT /?lifecycle HTTP/1.1
Host: <bucket-name>.pek3a.qsstor.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 |
|
是 |
id |
String |
规则的标识符。可为任意 UTF-8 编码字符,长度不能超过 255 个字符。同一个 Bucket 的生命周期中,规则的标识符必须唯一。 |
是 |
status |
String |
生命周期规则的状态。可设置为 |
是 |
filter |
Dict |
用于设置对象的过滤条件。 |
是 |
prefix |
String |
对象名的前缀。匹配此前缀的对象应用此规则。默认值为空字符串,表示匹配整个 Bucket 中的对象。不支持正则表达式。 |
否 |
expiration |
Dict |
用于配置过期删除对象的规则。设置该规则时,需指定 |
否 |
abort_incomplete_multipart_upload |
Dict |
用于配置取消未完成的分段上传的规则。设置该规则时,需指定 |
否 |
transition |
Dict |
用于配置变更存储级别的规则。设置该规则时,需指定 |
否 |
days |
Integer |
距离对象最后更新指定天数后执行操作。 |
否 |
days_after_initiation |
Integer |
在初始化分段上传的指定天数后执行操作。 |
否 |
storage_class |
String |
待变更的存储级别。仅支持设置为 |
否 |
说明
-
生命周期规则总数不能超过 100 条,且每条规则中仅允许存在一种类型的操作。如:指定相同前缀的同一 Bucket 中,过期删除的规则只能有一条。
-
id
用来唯一标记生命周期规则,描述该规则的用途。不能与其他生命周期规则id
相重复。 -
设置
transition
规则时,days
需大于等于 30 天。
响应头
此接口仅包含公共响应头。关于公共响应头的更多信息,请参见公共响应头。
错误码
错误码 | 错误描述 | HTTP 状态码 |
---|---|---|
OK |
成功设置或修改 Bucket 生命周期规则 |
200 |
其他错误码可参考错误码列表。
示例
请求示例
PUT /?lifecycle HTTP/1.1
Host: example.pek3a.qsstor.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: QingStor
Date: Sun, 16 Aug 2015 09:05:02 GMT
Content-Length: 0
Connection: close
x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b
SDK
此接口所对应的各语言 SDK 可参考 SDK 文档。