我很难用Amazon S3 SDK重命名同一个文件夹中的文件.我指的是API文档中的
copy object.
这是我的电话,但它一直返回“指定的存储桶不存在”.
$clients = S3Client::factory(array(
'key' => 'key',
'secret' => 'secret'
));
try {
$result = $clients->copyObject(array(
'ACL' => 'private',
// Bucket is required
'Bucket' => 'david1982.audio',
// CopySource is required
'CopySource' => 'mp3/music.mp3',
// Key is required
'Key' => 'mp3/music_name_updated.mp3',
'MetadataDirective' => 'REPLACE'
));
echo json_encode($result);
} catch (Exception $e) {
echo json_encode($e->getMessage());
}
在有人指出显而易见的问题并问“你的存在桶存在吗?”是的,它确实存在.我可以使用相同的密钥运行呼叫,并从该存储桶中获取所有文件.
我真的希望能够通过API重命名文件.您可以在Amazon S3浏览器中执行此操作.
找到解决方案
出于某种原因,您必须在CopySource中包含存储桶.
$result = $clients->copyObject(array(
'ACL' => 'private',
// Bucket is required
'Bucket' => 'david1982.audio',
// CopySource is required
'CopySource' => 'david1982.audio/mp3/music.mp3',
// Key is required
'Key' => 'mp3/music_name_updated.mp3',
'MetadataDirective' => 'REPLACE'
));