华为云计算 云知识 设置桶的生命周期配置SetBucketLifecycle
设置桶的生命周期配置SetBucketLifecycle

 

接口说明

OBS系统支持指定规则来实现定时删除或 迁移 桶中对象,这就是生命周期配置。典型的应用场景如: 周期性上传的日志文件,可能只需要保留一个星期或一个月,到期后要删除它们。 某些文档在一段时间内经常访问,但是超过一定时间后就可能不会再访问了。这种文档您可能会先选择归档,然后在一定时间后删除。 桶的最低转温和转冷的时间可以配置,取值范围为24~8640。

本接口实现为桶创建或更新生命周期配置信息。

说明: 对象生命周期到期以后,对象将会永久删除,无法恢复。

要正确执行此操作,需要确保执行者有PutLifecycleConfiguration权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

生命周期配置实现了定时删除对象和定时迁移对象的功能,所以如果想要阻止用户删除或迁移对象,以下几项操作的权限都应该被禁止:

DeleteObject DeleteObjectVersion PutLifecycleConfiguration 如果想要阻止用户管理桶的生命周期配置,应该禁止PutLifecycleConfiguration权限。

URL
PUT  https://obs.af-south-1.myhuaweicloud.com/ 
请求参数
名称 类型 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。

Body参数
名称 类型 必选 描述
Rule
 
Array of Rule objects  
参数:
Rule
名称 类型 必选 描述
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则必选。

参数:
Rule.Expiration
名称 类型 必选 描述
Date
 
string

指定OBS对该日期之前的对象执行生命周期规则。日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。

如果没有Days元素,则必选。

Days
 
integer

指定生命周期规则在对象最后更新过后多少天生效(仅针对对象的最新版本)。

如果没有Date元素,则必选。

参数:
Rule.NoncurrentVersionExpiration
名称 类型 必选 描述
NoncurrentDays
 
integer

表示对象在成为历史版本之后第几天时规则生效(仅针对历史版本)。 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选。

参数:
Rule.Transition
名称 类型 必选 描述
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

参数:
Rule.NoncurrentVersionTransition
名称 类型 必选 描述
NoncurrentDays
 
integer

表示对象在成为历史版本之后第几天时规则生效(仅针对历史版本)。

StorageClass
 
string

表示对象将被修改成存储级别。 取值范围: WARM或COLD

参数:
Rule.AbortIncompleteMultipartUpload
名称 类型 必选 描述
DaysAfterInitiation
 
integer

指定未合并的多段任务(碎片)的生命周期规则,在多段任务初始化过后多少天生效。 如果有AbortIncompleteMultipartUpload则必选。

返回参数
返回码: 200

成功请求响应。

名称 类型 必选 描述
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创建来唯一确定本次请求的值,可以通过该值来定位问题。

返回码: 400

请求失败响应消息。

名称 类型 必选 描述
Code
 
string

错误响应消息体XML中错误响应对应的HTTP消息返回码,具体的错误码请参见错误码-表2

Message
 
string

错误响应消息体XML中具体错误更全面、详细的英文解释,具体的错误消息请参见错误码-表2

RequestId
 
string

本次错误请求的请求ID,用于错误定位。

HostId
 
string

返回该消息的服务端ID。

Resource
 
string

该错误相关的桶或对象资源。

请求示例
示例 1
 
"/?lifecycle"
 
"PUT /?lifecycle HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 03:05:34 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=\nContent-MD5: ujCZn5p3fmczNiQQxdsGaQ==\nContent-Length: 919\n\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LifecycleConfiguration> \n <Rule> \n <ID>delete-2-days</ID> \n <Prefix>test/</Prefix> \n <Status>Enabled</Status> \n <Expiration> \n <Days>70</Days> \n </Expiration> \n <NoncurrentVersionExpiration> \n <NoncurrentDays>70</NoncurrentDays> \n </NoncurrentVersionExpiration>\n <Transition> \n <Days>30</Days> \n <StorageClass>WARM</StorageClass> \n </Transition> \n <Transition> \n <Days>60</Days> \n <StorageClass>COLD</StorageClass> \n </Transition> \n <NoncurrentVersionTransition> \n <NoncurrentDays>30</NoncurrentDays> \n <StorageClass>WARM</StorageClass> \n </NoncurrentVersionTransition> \n <NoncurrentVersionTransition> \n <NoncurrentDays>60</NoncurrentDays> \n <StorageClass>COLD</StorageClass> \n </NoncurrentVersionTransition> \n <AbortIncompleteMultipartUpload>\n <DaysAfterInitiation>10</DaysAfterInitiation>\n </AbortIncompleteMultipartUpload>\n </Rule>\n</LifecycleConfiguration>\n"
错误码
请参考 错误码说明

 

上一篇:什么是数据库对象 下一篇:什么是GES

湃睿产品生命周期管理解决方案实践

湃睿产品生命周期管理解决方案实践