尝试使用 copyObject 命令 (AWS S3) 时出现以下错误。我正在使用 AWS PHP SDK,下面是代码:
$this->client->copyObject(array(
'Bucket' => 'lms-courses',
'Key' => 'ideasfile.zip',
'CopySource' => "lms-courses/lalala.zip",
));
在 上执行"复制对象"时出错 "https://s3-us-west-2.amazonaws.com/lms-courses/ideasfile.zip";自主技术 HTTP 错误:客户端错误:导致
PUT https://s3-us-west-2.amazonaws.com/lms-courses/ideasfile.zip
在404 Not Found
响应中:无此键
指定的键不 exist.lalala.zipE698888 (截断...) NoSuchKey (客户端):指定的密钥不存在。-无此键
指定的键不 exist.lalala.zipE698888912B810F7DfHtqN5Hls4hGdTGY/pVv36XZPzoM4mJ5fAdhJjEjDufNUArvKCrqN27SjiG06u5hnC8G8yPdzA=
我已经为这个错误而苦苦挣扎了一段时间。存储桶lms-courses
存在,ideasfile.zip
也是如此。我什至手动将该文件添加到存储桶中,只是为了以这种方式对其进行测试 - 以防它无法正确上传或其他内容。
我不明白为什么它说密钥不存在,当它清楚地存在时 - 我正在看它。
错误指出源对象lalala.zip
不存在。你确定lms-courses/lalala.zip
存在吗?
根据使用适用于 PHP 的 AWS 开发工具包复制对象
// Copy an object.
$s3->copyObject(array(
'Bucket' => $targetBucket,
'Key' => $targetKeyname,
'CopySource' => "{$sourceBucket}/{$sourceKeyname}",
));