【发布时间】:2019-04-01 23:01:22
【问题描述】:
我正在尝试使用 SDK for PHP 从 AWS S3 下载对象。
$filename = "filename with spaces in it.jpg";
$src = "path/from/bucket-root/".$filename;
$result = S3Client->getObject([
'Bucket' => 'my-bucket-name',
'Key' => $src
]);
当我运行这个时,我得到一个错误:
Error executing "GetObject" ... GET filename%20with%20spaces%20in%20it.jpg resulted in a 404 Not Found response:
S3 客户端正在对空格进行编码,但无法解析路径。
我已经尝试了以下所有方法:
$filename = urlencode("filename with spaces in it.jpg");
$filename = urldecode("filename with spaces in it.jpg");
$filename = addslashes("filename with spaces in it.jpg");
$filename = str_replace(' ','+',"filename with spaces in it.jpg");
还有几种组合 - 我现在只是在墙上扔屎。
我的关键路径和存储桶名称/路由是正确的,因为我能够成功获取文件名中没有空格的对象。
如何获取文件名中有空格的对象?
【问题讨论】:
标签: php amazon-web-services amazon-s3 aws-sdk aws-php-sdk