全部产品
对象存储 OSS

PutBucketLifecycle

更新时间:2017-06-09 14:38:39   分享:   

Put Bucket Lifecycle

Bucket的拥有者可以通过Put Bucket Lifecycle来设置Bucket的Lifecycle配置。Lifecycle开启后,OSS将按照配置,定期自动删除或转储与Lifecycle规则相匹配的Object。

请求语法

  1. PUT /?lifecycle HTTP/1.1
  2. Date: GMT Date
  3. Content-LengthContentLength
  4. Content-Type: application/xml
  5. Authorization: SignatureValue
  6. Host: BucketName.oss.aliyuncs.com
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <LifecycleConfiguration>
  9. <Rule>
  10. <ID>RuleID</ID>
  11. <Prefix>Prefix</Prefix>
  12. <Status>Status</Status>
  13. <Expiration>
  14. <Days>Days</Days>
  15. </Expiration>
  16. <Transition>
  17. <Days>Days</Days>
  18. <StorageClass>StorageClass</StorageClass>
  19. </Transition>
  20. <AbortMultipartUpload>
  21. <Days>Days</Days>
  22. </AbortMultipartUpload>
  23. </Rule>
  24. </LifecycleConfiguration>

请求元素(Request Elements)

名称 描述 是否必需
CreatedBeforeDate 指定规则何时之前生效。日期必需服从ISO8601的格式,并且总是UTC的零点。 例如:2002-10-11T00:00:00.000Z
类型:字符串
父节点:Expiration或者Transition或者AbortMultipartUpload
Days和CreatedBeforeDate二选一
Days 指定规则在对象最后修改时间过后多少天生效。
类型:正整数
父节点:Expiration或者Transition
Days和CreatedBeforeDate二选一
Expiration 指定Object规则的过期属性。
类型:容器
子节点:Days或CreatedBeforeDate
父节点:Rule
AbortMultipartUpload 指定未完成的Part规则的过期属性。
类型:容器
子节点:Days或CreatedBeforeDate
父节点:Rule
ID 规则唯一的ID。最多由255字节组成。当用户没有指定,或者该值为空时,OSS会为用户生成一个唯一值。
类型:字符串
子节点:无
父节点:Rule
LifecycleConfiguration Lifecycle配置的容器,最多可容纳1000条规则。
类型:容器
子节点:Rule
父节点:无
Prefix 指定规则所适用的前缀。只有匹配前缀的对象才可能被该规则所影响。不可重叠。
类型:字符串
子节点:无
父节点:Rule
Rule 表述一条规则
类型:容器
子节点:ID,Prefix,Status,Expiration
父节点:LifecycleConfiguration
Status 如果其值为Enabled,那么OSS会定期执行该规则;如果是Disabled,那么OSS会忽略该规则。
类型:字符串
父节点:Rule
有效值:Enabled,Disabled
StorageClass 指定对象转储到OSS的目标存储类型
类型:字符串
子节点:无
父节点:Transition
有效值:IA或者Archive
是,如果父节点Transition设置了
Transition 指定Object在有效生命周期中,OSS何时将对象转储到IA或者Archive存储类型
类型:容器
子节点:Days或CreatedBeforeDate
父节点:Rule

细节分析

  1. 只有Bucket的拥有者才能发起Put Bucket Lifecycle请求,否则返回403 Forbidden消息。错误码:AccessDenied。
  2. 如果此前没有设置过Lifecycle,此操作会创建一个新的Lifecycle配置;否则,就覆写先前的配置。
  3. 可以对Object设置过期时间,也可以对Part设置过期时间。这里的Part指的是以分片上传方式上传,但最后未提交的分片。
  4. 支持Standard Bucket中Standard Objects转储为IA、Archive存储类型,Standard Bucket可以针对一个Object同时配置转储IA和Archive存储类型规则,同时配置转储IA和Archive类型情况下,转储Archive的时间必须比转储IA的时间长。例如Transition IA设置Days为30,Transition Archive设置Days必须大于IA。否则,报InvalidArgument错。
  5. Object设置过期时间必须大于转为IA或者Archive的时间。否则,报InvalidArgument错。
  6. 支持IA Bucket中Objects转储为Archive存储类型。
  7. 不支持Archvie Bucket创建转储规则。
  8. 不支持IA类型Object转储为Standard。
  9. 不支持Archive类型Object转储为IA或Standard。

示例

请求示例:

  1. PUT /?lifecycle HTTP/1.1
  2. Host: oss-example.oss.aliyuncs.com
  3. Content-Length: 443
  4. Date: Thu , 8 Jun 2017 13:08:38 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:PYbzsdWSMrAIWAlMW8luWekJ8=
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <LifecycleConfiguration>
  8. <Rule>
  9. <ID>delete objects and parts after one day</ID>
  10. <Prefix>logs/</Prefix>
  11. <Status>Enabled</Status>
  12. <Expiration>
  13. <Days>1</Days>
  14. </Expiration>
  15. <AbortMultipartUpload>
  16. <Days>1</Days>
  17. </AbortMultipartUpload>
  18. </Rule>
  19. <Rule>
  20. <ID>transit objects to IA after 30, to Archive 60, expire after 10 years</ID>
  21. <Prefix>data/</Prefix>
  22. <Status>Enabled</Status>
  23. <Transition>
  24. <Days>30</Days>
  25. <StorageClass>IA</StorageClass>
  26. </Transition>
  27. <Transition>
  28. <Days>60</Days>
  29. <StorageClass>Archive</StorageClass>
  30. </Transition>
  31. <Expiration>
  32. <Days>3600</Days>
  33. </Expiration>
  34. </Rule>
  35. <Rule>
  36. <ID>transit objects to Archive after 60 days</ID>
  37. <Prefix>important/</Prefix>
  38. <Status>Enabled</Status>
  39. <Transition>
  40. <Days>6</Days>
  41. <StorageClass>Archive</StorageClass>
  42. </Transition>
  43. </Rule>
  44. <Rule>
  45. <ID>delete created before date</ID>
  46. <Prefix>backup/</Prefix>
  47. <Status>Enabled</Status>
  48. <Expiration>
  49. <CreatedBeforeDate>2017-01-01T00:00:00.000Z</CreatedBeforeDate>
  50. </Expiration>
  51. <AbortMultipartUpload>
  52. <CreatedBeforeDate>2017-01-01T00:00:00.000Z</CreatedBeforeDate>
  53. </AbortMultipartUpload>
  54. </Rule>
  55. </LifecycleConfiguration>

返回示例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 534B371674E88A4D8906008B
  3. Date: Thu , 8 Jun 2017 13:08:38 GMT
  4. Content-Length: 0
  5. Connection: keep-alive
  6. Server: AliyunOSS
本文导读目录
本文导读目录
以上内容是否对您有帮助?