OBS系统支持指定规则来实现定时删除或 迁移 桶中对象,这就是生命周期配置。典型的应用场景如: 周期性上传的日志文件,可能只需要保留一个星期或一个月,到期后要删除它们。 某些文档在一段时间内经常访问,但是超过一定时间后就可能不会再访问了。这种文档您可能会先选择归档,然后在一定时间后删除。 桶的最低转温和转冷的时间可以配置,取值范围为24~8640。
本接口实现为桶创建或更新生命周期配置信息。
说明: 对象生命周期到期以后,对象将会永久删除,无法恢复。
要正确执行此操作,需要确保执行者有PutLifecycleConfiguration权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。
生命周期配置实现了定时删除对象和定时迁移对象的功能,所以如果想要阻止用户删除或迁移对象,以下几项操作的权限都应该被禁止:
DeleteObject DeleteObjectVersion PutLifecycleConfiguration 如果想要阻止用户管理桶的生命周期配置,应该禁止PutLifecycleConfiguration权限。
名称 | 类型 | IN | 必选 | 描述 |
---|---|---|---|---|
Authorization
|
string | header | 是 |
请求消息中可带的签名信息。 |
Date
|
string | header | 否 |
请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。 |
Content-MD5
|
string | header | 是 |
按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。也支持设置Content-SHA256头域,其值为消息体256-bit SHA256值经过base64编码后得到的字符串,Content-MD5和Content-SHA256二选一。 示例:n58IG6hfM7vqI4K0vnWpog== |
bucket_name
|
string | query | 是 |
请求的桶名称。 |
lifecycle
|
string | query | 是 |
lifecycle表示请求桶声明周期API。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Rule
|
Array of Rule objects | 是 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
ID
|
string | 否 |
一条Rule的标识,由不超过255个字符的字符串组成。 |
Prefix
|
string | 是 |
对象名前缀,用以标识哪些对象可以匹配到当前这条Rule。 约束: 1.当按前缀配置时,如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系,OBS会将两条规则视为同一条,而禁止您配置本条规则。例如,系统中已存在指定前缀名为“abc”的规则,则不允许再配置指定前缀以“abc”字段开头的规则。 2.如果已存在按前缀配置的生命周期规则,则不允许再新增配置到整个桶的规则。 |
Status
|
string | 是 |
标识当前这条Rule是否启用。 |
Expiration
|
Expiration object | 否 |
生命周期配置中表示过期时间的Container(仅针对对象的最新版本)。 如果没有Transition, NoncurrentVersionTransition, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选。 |
NoncurrentVersionExpiration
|
NoncurrentVersionExpiration object | 否 |
生命周期配置中表示历史版本过期时间的Container。您可以将该动作设置在已启用多版本(或暂停)的桶,来让系统删除对象的满足特定生命周期的历史版本(仅针对历史版本)。 |
Transition
|
Array of Transition objects | 否 |
生命周期配置中表示迁移时间和迁移后 对象存储 级别的元素(仅针对对象的最新版本)。 如果没有NoncurrentVersionTransition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选。 |
NoncurrentVersionTransition
|
Array of NoncurrentVersionTransition objects | 否 |
生命周期配置中表示对象的历史版本迁移时间和迁移后对象存储级别的元素。 |
AbortIncompleteMultipartUpload
|
AbortIncompleteMultipartUpload object | 否 |
生命周期配置中表示未合并的多段任务(碎片)的过期属性Container。 如果没有Transition, Expiration, NoncurrentVersionExpiration, NoncurrentVersionTransition则必选。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Date
|
string | 否 |
指定OBS对该日期之前的对象执行生命周期规则。日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。 如果没有Days元素,则必选。 |
Days
|
integer | 否 |
指定生命周期规则在对象最后更新过后多少天生效(仅针对对象的最新版本)。 如果没有Date元素,则必选。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
NoncurrentDays
|
integer | 否 |
表示对象在成为历史版本之后第几天时规则生效(仅针对历史版本)。 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选。 |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Date
|
string | 否 |
指定OBS对该日期之前的对象执行生命周期规则。日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。 如果没有Days元素,则必选。 |
Days
|
integer | 否 |
指定生命周期规则在对象最后更新过后多少天生效(仅针对对象的最新版本)。 如果没有Date元素,则必选。 |
StorageClass
|
string | 否 |
表示对象将被修改成存储级别。 取值范围: WARM或COLD |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
NoncurrentDays
|
integer | 否 |
表示对象在成为历史版本之后第几天时规则生效(仅针对历史版本)。 |
StorageClass
|
string | 否 |
表示对象将被修改成存储级别。 取值范围: WARM或COLD |
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
DaysAfterInitiation
|
integer | 否 |
指定未合并的多段任务(碎片)的生命周期规则,在多段任务初始化过后多少天生效。 如果有AbortIncompleteMultipartUpload则必选。 |
成功请求响应。
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
Content-Length
|
string | 否 |
响应消息体的字节长度。 |
Connection
|
string | 否 |
指明与服务器的连接是长连接还是短连接。 |
Date
|
string | 否 |
OBS系统响应的时间。 |
ETag
|
string | 否 |
对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。实际的ETag是对象的哈希值。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过MD5加密后都有唯一的ETag。如果通过多段上传对象,则无论加密方法如何,MD5会拆分ETag,此类情况ETag就不是MD5的摘要。 |
x-obs-id-2
|
string | 否 |
帮助定位问题的特殊符号。 |
x-obs-request-id
|
string | 否 |
由OBS创建来唯一确定本次请求的值,可以通过该值来定位问题。 |