跳到主要内容

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" }
]
}

请求元素

NameTypeDescription
QuietString打开“简单”响应模式的开关
Objectsobject保存一个Object信息的容器
KeyString被删除Object的名字

响应元素

NameTypeDescription
DeletedsArray保存被成功删除的Object
ErrorsArray删除失败的对象列表
KeyStringCOS执行删除操作的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: COS

{
"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: COS

常见问题

Content-MD5的计算方法

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

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

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