阅读114 返回首页    go 阿里云


PutBucketLifecycle__关于Bucket的操作_API 参考_对象存储 OSS-阿里云

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

请求语法

  1. PUT /?lifecycle HTTP/1.1
  2. Date: GMT Date
  3. Content-Length:ContentLength
  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. <AbortMultipartUpload>
  17. <Days>Days</Days>
  18. </AbortMultipartUpload>
  19. </Rule>
  20. </LifecycleConfiguration>

请求元素(Request Elements)

名称 描述 是否必需
CreatedBeforeDate 指定规则何时之前生效。日期必需服从ISO8601的格式,并且总是UTC的零点。 例如:2002-10-11T00:00:00.000Z
类型:字符串
父节点:Expiration或者AbortMultipartUpload
Days和CreatedBeforeDate二选一
Days 指定规则在对象最后修改时间过后多少天生效。
类型:正整数
父节点:Expiration
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

细节分析

  1. 只有Bucket的拥有者才能发起Put Bucket Lifecycle请求,否则返回403 Forbidden消息。错误码:AccessDenied。
  2. 如果此前没有设置过Lifecycle,此操作会创建一个新的Lifecycle配置;否则,就覆写先前的配置。
  3. 可以对Object设置过期时间,也可以对Part设置过期时间。这里的Part指的是以分片上传方式上传,但最后未提交的分片。

    示例

请求示例:

  1. PUT /?lifecycle HTTP/1.1
  2. Host: oss-example.oss.aliyuncs.com
  3. Content-Length: 443
  4. Date: Mon, 14 Apr 2014 01:08:38 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
  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>delete created before date</ID>
  21. <Prefix>backup/</Prefix>
  22. <Status>Enabled</Status>
  23. <Expiration>
  24. <CreatedBeforeDate>2014-10-11T00:00:00.000Z</CreatedBeforeDate>
  25. </Expiration>
  26. <AbortMultipartUpload>
  27. <CreatedBeforeDate>2014-10-11T00:00:00.000Z</CreatedBeforeDate>
  28. </AbortMultipartUpload>
  29. </Rule>
  30. </LifecycleConfiguration>

返回示例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 534B371674E88A4D8906008B
  3. Date: Mon, 14 Apr 2014 01:17:10 GMT
  4. Content-Length: 0
  5. Connection: keep-alive
  6. Server: AliyunOSS

最后更新:2016-11-23 17:16:07

  上一篇:go PutBucketReferer__关于Bucket的操作_API 参考_对象存储 OSS-阿里云
  下一篇:go GetBucket__关于Bucket的操作_API 参考_对象存储 OSS-阿里云