指定的键不存在 - 将S3对象从一个存储桶复制到另一个存储桶时

时间:2014-10-18 08:50:09

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

我正在尝试将S3对象从一个存储桶复制到另一个存储桶,响应看起来像这样 -

`object(stdClass)#24 (3) { 
          ["error"]=> array(2) { 
              ["code"]=> string(9)
               "NoSuchKey" ["message"]=> string(33)
                "The specified key does not exist." 
       }
          ["code"]=> int(404) ["headers"]=> array(1) {
      ["type"]=> string(15) "application/xml"
    } 
 }

`

以下是代码的外观 -

var_dump($this->s3->copyObject('bucket_1','bucket_1/'. images/1.jpg, 'bucket_2', 'bucket_2/images')).die();

根据 copyObject 的方法签名,我需要提供源对象URI 目标对象URI

任何人都可以帮我了解这里出了什么问题?

感谢。

1 个答案:

答案 0 :(得分:4)

最后我在看了几个小时的亚马逊文档后修复了它。

以下是S3对象键的内容 - http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-keys

由于S3是平面文件系统,因此文件夹包含在密钥中,

$this->s3->copyObject('bucket_1','images/1.jpg, 'bucket_2', 'images/copy_of_2.jpg');

ACL也可以作为第五个参数传递。