我已经开始使用AWS S3服务,并且在创建存储桶以及将对象上传到任何存储桶方面取得了成功。 但是当我尝试将对象从一个存储桶复制到另一个存储桶时,我在响应中遇到了这个异常。
我用过的图书馆是: http://docs.aws.amazon.com/AWSSDKforPHP/latest/index.html#m=AmazonS3/copy_object
例外我得到的是:
[body] => CFSimpleXML Object
(
[Code] => InvalidDigest
[Message] => The Content-MD5 you specified was invalid
)
[status] => 400
示例我使用的代码是:
$Connection = new AmazonS3(array(
'key' => AWS_KEY,
'secret' => AWS_SECRET_KEY
));
$Connection->set_hostname($HOST);
$Connection->allow_hostname_override(false);
$Connection->enable_path_style();
$res = $Connection->copy_object(
array('bucket' => $bucket, 'filename' => ("boxdata/asset4053/images/yesteryear.png")),
array('bucket' => $bucket, 'filename' => 'test123.png'),
array('acl' => AmazonS3::ACL_PUBLIC,
'storage' => AmazonS3::STORAGE_STANDARD,
'metadataDirective' => 'COPY')
);
非常感谢!
答案 0 :(得分:0)
这是一个老问题,但我遇到了同样的问题并找到了解决方案。在您发送到copy_object的选项列表中,添加NoContentMD5 =>真。
$res = $Connection->copy_object(
array('bucket' => $bucket, 'filename' => 'test123.png'),
array('bucket' => $bucket, 'filename' => 'test456.png'),
array('NoContentMD5' => true)
);