DeleteMultipleObjects

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

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

请求语法

POST /?delete HTTP/1.1
Host: bucketname.cos.chinac.com
Date: GMT Date
Content-Length: ContentLength
Content-MD5: MD5Value
Authorization: SignatureValue

{
    "Quiet": false,
    "Objects": [
      { "Key": "cos.jpg" },
      { "Key": "fun/movie/001.avi" },
      { "Key": "fun/movie/007.avi" }
    ]
}

请求元素

Name Type Description
Quiet String 打开“简单”响应模式的开关
Objects object 保存一个Object信息的容器
Key String 被删除Object的名字

响应元素

Name Type Description
Deleteds Array 保存被成功删除的Object
Errors Array 删除失败的对象列表
Key String COS执行删除操作的Object名字

细节分析

  1. 必须填Content-Length和Content-MD5字段。COS会根据这些字段验证收到的消息体是正确的,之后才会执行删除操作
  2. 生成Content-MD5字段内容方法:将DeleteMultipleObject请求内容经过MD5加密后得到一个32位字符串即是Content-MD5字段内容,示例可参看本节常见问题
  3. DeleteMultipleObjects请求默认是详细(verbose)模式
  4. 请求的消息体最大允许2MB的内容,超过2MB会返回MalformedJson错误码
  5. 请求最多允许一次删除1000个Object;超过1000个Object会返回MalformedJson错误码
  6. 如果用户上传了Content-MD5请求头,COS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码

详细模式示例

请求示例
POST /?delete HTTP/1.1
Host: test-bucket.cos.chinac.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM=
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:+z3gBfnFAxBcBDgx27Y/jEfbfu8=

{
    "Quiet": false,
    "Objects": [
      { "Key": "cos.jpg" },
      { "Key": "fun/movie/001.avi" },
      { "Key": "fun/movie/007.avi" }
    ]
}
返回示例
HTTP/1.1 200 OK
x-cos-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Type: application/json
Content-Length: 244
Connection: keep-alive
Server: ChinacCOS

{
    "Deleteds": [
      { "Key": "multipart.data" },
      { "Key": "test.jpg" },
      { "Key": "demo.jpg" }
    ],
    "Errors":[]

}

简单模式示例

请求示例
POST /?delete HTTP/1.1
Host: test-bucket.cos.chinac.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ODBGOERFMDMzQTczRUY3NUE3NzA5QzdFNUYzMDQxNEM=
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:+z3gBfnFAxBcBDgx27Y/jEfbfu8=

{
    "Quiet": true,
    "Objects": [
      { "Key": "cos.jpg" },
      { "Key": "fun/movie/001.avi" },
      { "Key": "fun/movie/007.avi" }
    ]
}
返回示例
HTTP/1.1 200 OK
x-cos-request-id: 559CC9BDC755F95A64485981
Date: Wed, 29 Feb 2012 12:33:45 GMT
Content-Length: 0
Connection: keep-alive
Server: ChinacCOS

常见问题

Content-MD5的计算方法

以消息内容为"123456789"来说,计算这个字符串的Content-MD5

正确的计算方式,以Python为例子:

>>> import hashlib
>>> hash = hashlib.md5()
>>> hash.update("0123456789")
>>> hash.hexdigest()
'781e5e245d69b566979b86e28d23f2c7'

results matching ""

    No results matching ""