AWS S3提供InvalidDigest [您指定的Content-MD5无效]使用copy_object()时出错

时间:2014-06-12 09:38:39

标签: php amazon-web-services amazon-s3

我已经开始使用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')
);

非常感谢!

1 个答案:

答案 0 :(得分:0)

这是一个老问题,但我遇到了同样的问题并找到了解决方案。在您发送到copy_object的选项列表中,添加NoContentMD5 =>真。

 $res = $Connection->copy_object(
    array('bucket' => $bucket, 'filename' => 'test123.png'), 
    array('bucket' => $bucket, 'filename' => 'test456.png'), 
    array('NoContentMD5' => true)
 );