Я пытаюсь загрузить объект из AWS S3 с помощью SDK для PHP.
$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");
И несколько комбинаций - в этот момент я просто кидаю в стену какашки.
Мой путь к ключу и имя / маршрут сегмента верны, поскольку я могу успешно получить объект без пробелов в имени файла.
Как мне получить этот объект с пробелами в имени файла?