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名字 |
细节分析
- 必须填Content-Length和Content-MD5字段。COS会根据这些字段验证收到的消息体是正确的,之后才会执行删除操作
- 生成Content-MD5字段内容方法:将DeleteMultipleObject请求内容经过MD5加密后得到一个32位字符串即是Content-MD5字段内容,示例可参看本节常见问题
- DeleteMultipleObjects请求默认是详细(verbose)模式
- 请求的消息体最大允许2MB的内容,超过2MB会返回MalformedJson错误码
- 请求最多允许一次删除1000个Object;超过1000个Object会返回MalformedJson错误码
- 如果用户上传了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'