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