问题描述
批量删除操作缺少Content-MD5请求头。
问题原因
您发起了DeleteMultipleObjects请求,但是请求头中缺少Content-MD5请求头。
问题示例
以下DeleteMultipleObjects请求中缺少必选的Content-MD5请求头。
POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>false</Quiet>
<Object>
<Key>multipart.data</Key>
</Object>
<Object>
<Key>test.jpg</Key>
</Object>
<Object>
<Key>demo.jpg</Key>
</Object>
</Delete>
解决方案
请求中添加Content-MD5请求头。
Content-MD5是一串由MD5算法生成的值,该请求头用于检查消息内容是否与发送时一致。上传了Content-MD5请求头后,OSS会计算消息体的Content-MD5并检查一致性。
Content-MD5计算方法为:
将
DeleteMultipleObjects
的请求消息体经过MD5加密后得到一个128位字节数组。将该字节数组用base64算法编码,编码后得到的字符串即为Content-MD5字段内容。
正确请求示例如下:
POST /?delete HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 29 Feb 2012 12:26:16 GMT
Content-Length:151
Content-MD5: ohhnqLBJFiKkPSBO1eNaUA==
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>false</Quiet>
<Object>
<Key>multipart.data</Key>
</Object>
<Object>
<Key>test.jpg</Key>
</Object>
<Object>
<Key>demo.jpg</Key>
</Object>
</Delete>
相关文档
文档内容是否对您有帮助?