全部产品
对象存储 OSS

DeleteMultipleObjects

更新时间:2017-06-07 13:26:11   分享:   

Delete Multiple Objects

Delete Multiple Objects操作支持用户通过一个HTTP请求删除同一个Bucket中的多个Object。Delete Multiple Objects操作支持一次请求内最多删除1000个Object,并提供两种返回模式:详细(verbose)模式和简单(quiet)模式:

  • 详细模式:OSS返回的消息体中会包含每一个删除Object的结果。
  • 简单模式:OSS返回的消息体中只包含删除过程中出错的Object结果;如果所有删除都成功的话,则没有消息体。

请求语法

  1. POST /?delete HTTP/1.1
  2. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  3. Date: GMT Date
  4. Content-Length: ContentLength
  5. Content-MD5: MD5Value
  6. Authorization: SignatureValue
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Delete>
  9. <Quiet>true</Quiet>
  10. <Object>
  11. <Key>key</Key>
  12. </Object>
  13. </Delete>

请求参数(Request Parameters)

Delete Multiple Objects时,可以通过encoding-type对返回结果中的Key进行编码。

名称 描述
encoding-type 指定对返回的Key进行编码,目前支持url编码。Key使用UTF-8字符,但xml 1.0标准不支持解析一些控制字符,比如ascii值从0到10的字符。对于Key中包含xml 1.0标准不支持的控制字符,可以通过指定encoding-type对返回的Key进行编码。
数据类型:字符串
默认值:无
可选值:url

请求元素(Request Elements)

名称 描述
Delete 保存Delete Multiple Object请求的容器。
类型:容器
子节点:一个或多个Object元素,可选的Quiet元素
父节点: None.
Key 被删除Object的名字。
类型:字符串
父节点:Object
Object 保存一个Object信息的容器。
类型:容器
子节点:key
父节点:Delete
Quiet 打开“简单”响应模式的开关。
类型:枚举字符串
有效值:true、false
默认值:false
父节点:Delete

响应元素(Response Elements)

名称 描述
Deleted 保存被成功删除的Object的容器。
类型:容器
子节点:Key
父节点:DeleteResult
DeleteResult 保存Delete Multiple Object请求结果的容器。
类型:容器
子节点:Deleted
父节点:None
Key OSS执行删除操作的Object名字。
类型:字符串
父节点:Deleted
EncodingType 指明返回结果中编码使用的类型。如果请求的参数中指定了encoding-type,那返回的结果会对Key进行编码。
类型:字符串
父节点:容器

细节分析

  1. Delete Multiple Objects请求必须填Content-Length和Content-MD5字段。OSS会根据这些字段验证收到的消息体是正确的,之后才会执行删除操作。
  2. 生成Content-MD5字段内容方法:首先将Delete Multiple Object请求内容经过MD5加密后得到一个128位字节数组;再将该字节数组用base64算法编码;最后得到的字符串即是Content-MD5字段内容。
  3. Delete Multiple Objects请求默认是详细(verbose)模式。
  4. 在Delete Multiple Objects请求中删除一个不存在的Object,仍然认为是成功的。
  5. Delete Multiple Objects的消息体最大允许2MB的内容,超过2MB会返回MalformedXML错误码。
  6. Delete Multiple Objects请求最多允许一次删除1000个Object;超过1000个Object会返回MalformedXML错误码。
  7. 如果用户上传了Content-MD5请求头,OSS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码。

示例

请求示例I:

  1. POST /?delete HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 29 Feb 2012 12:26:16 GMT
  4. Content-Length:151
  5. Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
  6. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:+z3gBfnFAxBcBDgx27Y/jEfbfu8=
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Delete>
  9. <Quiet>false</Quiet>
  10. <Object>
  11. <Key>multipart.data</Key>
  12. </Object>
  13. <Object>
  14. <Key>test.jpg</Key>
  15. </Object>
  16. <Object>
  17. <Key>demo.jpg</Key>
  18. </Object>
  19. </Delete>

返回示例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7
  3. Date: Wed, 29 Feb 2012 12:26:16 GMT
  4. Content-Length: 244
  5. Content-Type: application/xml
  6. Connection: keep-alive
  7. Server: AliyunOSS
  8. <?xml version="1.0" encoding="UTF-8"?>
  9. <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”>
  10. <Deleted>
  11. <Key>multipart.data</Key>
  12. </Deleted>
  13. <Deleted>
  14. <Key>test.jpg</Key>
  15. </Deleted>
  16. <Deleted>
  17. <Key>demo.jpg</Key>
  18. </Deleted>
  19. </DeleteResult>

请求示例II:

  1. POST /?delete HTTP/1.1
  2. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 29 Feb 2012 12:33:45 GMT
  4. Content-Length:151
  5. Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
  6. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:WuV0Jks8RyGSNQrBca64kEExJDs=
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Delete>
  9. <Quiet>true</Quiet>
  10. <Object>
  11. <Key>multipart.data</Key>
  12. </Object>
  13. <Object>
  14. <Key>test.jpg</Key>
  15. </Object>
  16. <Object>
  17. <Key>demo.jpg</Key>
  18. </Object>
  19. </Delete>

返回示例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 559CC9BDC755F95A64485981
  3. Date: Wed, 29 Feb 2012 12:33:45 GMT
  4. Content-Length: 0
  5. Connection: keep-alive
  6. Server: AliyunOSS
本文导读目录
本文导读目录
以上内容是否对您有帮助?