此接口用于为存储桶(Bucket)设置生命周期规则。生命周期规则开启后,TOS 将按照规则中指定的过期时间,自动转换与规则相匹配文件(Object)的存储类型或将其删除。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: GMT Date Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [ { "ID": "id", "Prefix": "prefix", "Status": "Enabled", "Tags": [ { "Key": "key", "Value": "value" } ], "Filter": { "ObjectSizeGreaterThan": 65536, "GreaterThanIncludeEqual": "Enabled", "ObjectSizeLessThan": 10485760, "LessThanIncludeEqual": "Disabled" }, "Expiration": { "Days": 120 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 90 }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 30 }, "Transitions": [ { "StorageClass": "IA", "Days": 30 }, { "StorageClass": "COLD_ARCHIVE", "Days": 60 } ], "NoncurrentVersionTransitions": [ { "StorageClass": "IA", "NoncurrentDays": 30 }, { "StorageClass": "COLD_ARCHIVE", "NoncurrentDays": 60 } ] } ] }
该请求使用的公共请求消息头,请参见公共参数。
名称 | 位置 | 参数类型 | 是否必选 | 示例值 | 说明 |
---|---|---|---|---|---|
lifecycle | Query | String | 是 | - | 代表 PutBucketLifecycle 请求的特殊标识。 |
名称 | 参数类型 | 是否必填 | 示例值 | 说明 |
---|---|---|---|---|
Rules | Array | 是 | - | 生命周期规则信息。 |
ID | String | 否 | id | 设置规则 ID,ID 为 规则的唯一标识符。
|
Prefix | String | 否 | prefix | 指定规则所适用的前缀(Prefix)。
|
Status | String | 是 | Enabled | 是否启用规则。只能取值
|
Expiration | Container | 否 | { "Days": 120 } | 指定对象的过期属性。 对于已开启版本控制的 Bucket,指定的过期时间只对对象的当前版本生效。 注意 对象的过期删除时间必须大于转为其他存储类型的时间。 子节点:Days、Date |
Days | Integer | 否 | 120 | 指定对象上传后过期删除的天数,必须为正整数。 注意 Days 与 Date 参数互斥。 父节点:Expiration |
Date | String | 否 | 2024-01-31T00:00:00.000Z | 指定对象上传后过期删除的具体日期。 注意 Days 与 Date 参数互斥。 父节点:Expiration |
NoncurrentVersionExpiration | Container | 否 | - | 指定对象历史版本的过期属性。仅对已开启版本控制或暂停版本控制的 Bucket 生效,仅对对象的历史版本生效。 注意 对象的历史版本过期删除时间必须大于转为其他存储类型的时间。 子节点:NoncurrentDays、NoCurrentDate |
NoncurrentDays | String | 否 | 30 | 指定对象历史版本过期删除的天数。 注意 NoncurrentDays 与 NoCurrentDate 参数互斥。 父节点:NoncurrentVersionExpiration |
NoCurrentDate | String | 否 | 2024-01-31T00:00:00.000Z | 指定对象历史版本过期删除的具体日期。 注意 NoncurrentDays 与 NoCurrentDate 参数互斥。 父节点:NoncurrentVersionExpiration |
AbortIncompleteMultipartUpload | Container | 否 | - | 指定未合并的分片任务(碎片)的过期属性。 说明 AbortIncompleteMultipartUpload 不支持基于对象标签(Tag)的筛选条件。 子节点:DaysAfterInitiation |
DaysAfterInitiation | Integer | 否 | 30 | 指定未合并的分片任务(碎片)的生命周期规则,在分片任务初始化过后过期删除的天数。 |
Transitions | Array | 否 | - | 指定对象沉降为指定存储类型的过期属性。 对于已开启版本控制的 Bucket,指定的过期时间只对对象的当前版本生效。 注意 如果您同时设置了自动沉降到低频存储、智能分层、归档闪回存储、归档存储、冷归档存储、深度冷归档及删除对象,则沉降时间必须满足:沉降到低频的时间 < 沉降到智能分层的时间 < 沉降到归档闪回的时间< 沉降到归档的时间 < 沉降到冷归档的时间 < 沉降到深度冷归档的时间 < 删除的时间。 子节点:StorageClass、Days、Date |
StorageClass | String | 否 | IA | 指定对象沉降的存储类型。取值如下:
父节点:Transitions |
Days | Integer | 否 | 120 | 指定对象过期沉降的天数,必须为正整数。 注意 Days 与 Date 参数互斥。 父节点:Transitions |
Date | String | 否 | 2024-01-31T00:00:00.000Z | 指定对象过期沉降的具体日期。 注意 Days 与 Date 参数互斥。 父节点:Transitions |
NoncurrentVersionTransitions | Array | 否 | - | 指定历史版本对象沉降为指定存储类型的过期属性。仅对已开启版本控制或暂停版本控制的 Bucket 生效,仅对对象的历史版本生效。 注意 如果您同时设置了将历史版本自动沉降到低频存储、智能分层、归档闪回存储、归档存储、冷归档存储、深度冷归档存储及删除对象,则沉降时间必须满足:沉降到低频的时间 < 沉降到智能分层的时间 < 沉降到归档闪回的时间< 沉降到归档的时间 < 沉降到冷归档的时间 < 沉降到深度冷归档的时间 < 删除的时间。 子节点:StorageClass、NoncurrentDays、NoCurrentDate |
StorageClass | String | 否 | IA | 指定历史版本对象沉降的存储类型。取值如下:
父节点:NoncurrentVersionTransitions |
NoncurrentDays | Integer | 否 | 120 | 指定历史版本对象过期沉降的天数,必须为正整数。 注意 NoncurrentDays 与 NoncurrentDate 参数互斥。 父节点:NoncurrentVersionTransitions |
NoncurrentDate | String | 否 | 2024-01-31T00:00:00.000Z | 指定历史版本对象过期沉降的具体日期。 注意 NoncurrentDays 与 NoncurrentDate 参数互斥。 父节点:NoncurrentVersionTransitions |
Tags | Array | 否 | - | TOS 可针对有特定标签的 Object,配置生命周期规则,最多可配置 10 个标签。关于标签的详细说明,请参见文件标签管理。 |
Key | String | 否 | tag | 对象标签的键。 |
Value | String | 否 | value | 对象标签的值。 |
Filter | Container | 否 | - | 指定规则生效的过滤条件,当前支持指定对象大小范围内生效。 |
ObjectSizeGreaterThan | Integer | 否 | 65536 | 设置规则生效于大于指定大小的对象,单位是字节。 |
GreaterThanIncludeEqual | String | 否 | Enabled | 是否启用相等条件。只能取值
父节点:Filter |
ObjectSizeLessThan | Integer | 否 | 65536 | 设置规则生效于小于指定大小的对象,单位是字节。 |
LessThanIncludeEqual | String | 否 | Enabled | 是否启用相等条件。只能取值
父节点:Filter |
该请求返回的公共响应消息头,请参见公共参数。
该请求响应中无消息元素。
配置桶最新版本过期删除。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 +0000 Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [{ "ID": "id", "Prefix": "prefix", "Status": "Enabled", "Expiration": { "Days": 120 } }] }
配置多版本桶最新对象过期删除、历史对象过期删除和未合并对象过期删除。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 +0000 Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [{ "ID": "id", "Prefix": "prefix", "Status": "Enabled", "Expiration": { "Days": 120 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 120 }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 } }] }
配置桶中对象执行存储类型转换和过期删除操作。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 +0000 Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [{ "ID": "id", "Prefix": "prefix", "Status": "Enabled", "Expiration": { "Days": 120 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 120 }, "Transitions": [ { "StorageClass": "IA", "Days": 30 }, { "StorageClass": "COLD_ARCHIVE", "Days": 60 } ] }] }
配置桶中指定对象前缀和标签执行存储类型转换和过期删除操作。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 +0000 Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [{ "ID": "id", "Prefix": "prefix", "Status": "Enabled", "Expiration": { "Days": 120 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 120 }, "Transitions": [ { "StorageClass": "IA", "Days": 30 }, { "StorageClass": "COLD_ARCHIVE", "Days": 60 } ], "Tags": [ { "Key": "aa", "Value": "bb" }, { "Key": "cc", "Value": "dd" } ] }] }
根据不同的前缀为桶配置多个生命周期规则。
PUT /?lifecycle HTTP/1.1 Host: bucket-name.tos-cn-beijing.volces.com Date: Fri, 30 Jul 2021 08:05:36 +0000 Authorization: authorization string Content-Length: ContentLength Content-MD5: MD5 { "Rules": [ { "ID": "id1", "Prefix": "prefix1/", "Status": "Enabled", "Expiration": { "Days": 120 }, }, { "ID": "id2", "Prefix": "prefix2/", "Status": "Enabled", "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 } }] }
HTTP/1.1 200 OK x-tos-id-2: f91b0c03a01300c1-a444cd0 x-tos-request-id: f91b0c03a01300c1-a444cd0 Date: Fri, 30 Jul 2021 06:45:39 GMT server: TosServer Content-Length: 0