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

use*_*554 5 amazon amazon-s3 amazon-web-services

我正在尝试将 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"
    } 
 }
Run Code Online (Sandbox Code Playgroud)

`

这是代码的外观 -

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

根据copyObject 的方法签名,我需要提供Source object URIDestination object URI

任何人都请帮助我知道这里出了什么问题?

谢谢。

use*_*554 5

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

这是 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');
Run Code Online (Sandbox Code Playgroud)

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