设置bucket的生命周期配置,如果存在,替换现有的生命周期配置。
请求
请求语法
PUT /?lifecycle HTTP/1.1 Host: examplebucket.region.unicloudsrv.com Content-Length: length Date: date Authorization: authorization string Content-MD5: MD5
<LifecycleConfiguration> <Rule> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>integer</DaysAfterInitiation> </AbortIncompleteMultipartUpload> <Expiration> <Date>timestamp</Date> <Days>integer</Days> <ExpiredObjectDeleteMarker>boolean</ExpiredObjectDeleteMarker> </Expiration> <Filter> <And> <Prefix>string</Prefix> <Tag> <Key>string</Key> <Value>string</Value> </Tag> ... </And> <Prefix>string</Prefix> <Tag> <Key>string</Key> <Value>string</Value> </Tag> </Filter> <ID>string</ID> <NoncurrentVersionExpiration> <NoncurrentDays>integer</NoncurrentDays> </NoncurrentVersionExpiration> <NoncurrentVersionTransition> <NoncurrentDays>integer</NoncurrentDays> <StorageClass>string</StorageClass> </NoncurrentVersionTransition> ... <Status>string</Status> <Transition> <Date>timestamp</Date> <Days>integer</Days> <StorageClass>string</StorageClass> </Transition> ... </Rule> ... </LifecycleConfiguration> |
请求参数
参数 | 描述 | 必填 |
LifecycleConfiguration | XML根级别标签 | YES |
Rule | 单个生命周期规则 | YES |
AbortIncompleteMultipartUpload | 中止并删除到指定天数未完成的多片上传 | NO |
DaysAfterInitiation | 指定中止不完整的多部分上传的天数 | NO |
Expiration | 对象生命周期过期时间 | NO |
Date | 指定一个日期 | NO |
Days | 指定天数 | NO |
ExpiredObjectDeleteMarker | 没有历史版本,当前版本为DeleteMarker起作用 | NO |
Filter | 基于对象前缀名(Prefix)和标签(Tag)或者组合进行筛选 | NO |
And | 实现多条件筛选 | NO |
Prefix | 用于筛选对象 | NO |
Tag | 用于筛选对象 | NO |
ID | 规则唯一标识 | NO |
Status | 规则状态:Enabled打开,Disabled关闭 | YES |
Transition | 对象转换为指定的存储类 | NO |
StorageClass | 指定存储类型 | NO |
NoncurrentVersionExpiration | 指定历史版本对象过期时间 | NO |
NoncurrentDays | 指定天数 | NO |
NoncurrentVersionTransition | 历史版本对象转换为指定版本 | NO |
参数说明
设置生命周期目前最多设置100条rule
虽然AbortIncompleteMultipartUpload、Expiration、Transition、NoncurrentVersionExpiration、NoncurrentVersionTransitions均为非必填,但rule中必须要指定一个操作要求
Filter如果没有指定,默认将规则应用于桶内全部对象
单个规则只能指定一个Prefix,Prefix没有设置,默认应用于全部对象
如果通过And设置筛选,只能在And中设置Prefix和Tag
单个规则只能指定一个Expiration,支持设置多个Transition
Expiration和Transition的Date和Days有且只能设置一个
Expiration的ExpiredObjectDeleteMarker:开启多版本的桶,当前版本是deleteMarker,并且对象的历史版本已经没有,此时当前版本的deleteMarker叫做ExpiredObjectDeleteMarker;设置后OSS会将符合要求的deleteMarker删掉
Tag目前还不支持
示例
请求示例
PUT /?lifecycle HTTP/1.1 Host: test.oss-cn-north-1.unicloudsrv.com x-amz-date: Tue, 21 Aug 2012 17:54:50 GMT Content-MD5: q6yJDlIkcBaGGfb3QLY69A== Authorization: authorization string Content-Length: 415 <LifecycleConfiguration> <Rule> <ID>id1</ID> <Filter> <Prefix>documents/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Disabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration> |
返回示例
HTTP/1.1 200 OK x-amz-id-2: r+qR7+nhXtJDDIJ0JJYcd+1j5nM/rUFiiiZ/fNbDOsd3JUE8NWMLNHXmvPfwMpdc x-amz-request-id: 9E26D08072A8EF9E Date: Wed, 14 May 2014 02:11:22 GMT Content-Length: 0 |