0016-00000606

问题描述

批量删除操作缺少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计算方法为:

  1. DeleteMultipleObjects的请求消息体经过MD5加密后得到一个128位字节数组。

  2. 将该字节数组用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>

相关文档