2013-03-21 1 views
1

Мы использовали SDK AWS с довольно хорошими результатами для загрузки/захвата файлов, но мы столкнулись с проблемой.AWS PHP SDK Version 2 S3 проблема с кодировкой имени файла

В S3 хранится файл, похожий на urlescaped. "/mefile/412501_413000/412604_-12%20C008%20Fil%20R[1].doc.gpg"

Пока SDK удалось обработать каждое искаженное имя файла, которое мы выбрали. Но когда я пытаюсь выполнить «doObjectExist», я также получаю сбой для этого файла.

$s3->doesObjectExist("mabucket","/mefile/412501_413000/412604_-12%20C008%20Fil%20R[1].doc.gpg")

всегда будет терпеть неудачу. Я попытался загрузить этот файл из локального хранилища, и это тоже не сработает. Я получаю забавные исключения: «Подписанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте свой ключ и метод подписи».

Есть ли какой-либо трюк, который мне нужно для кодирования имени файла перед использованием «doObjectExist». Кажется, что уже обрабатываются всевозможные плохие имена файлов (пробелы/utf-8 chars/& и т. Д.), Поэтому я смущен, почему это не работает.

ОБНОВЛЕНИЕ: Обновление до последнего AWS SDK для PHP 2.2.1. Работало на версии 2.1.0, у которой, по-видимому, было несколько ошибок. Если вы находитесь на Ubuntu 10.04, это немного грубо. (См. Комментарии об обновлении версии PHP здесь: http://www.zalexblog.com/2011/01/07/installing-php-5-3-3-on-ubuntu-10-04/)

ответ

0

Можете ли вы попробовать с html_entity_decode?

$s3->doesObjectExist("mabucket",html_entity_decode("/mefile/412501_413000/412604_-12%20C008%20Fil%20R[1].doc.gpg")) 
+0

Извините, нет. Я пробовал каждое декодирование в php: html_entity_decode, rawurldecode, urldecode. – Stech

+1

Может ли это быть место в ковше? https://github.com/tpyo/amazon-s3-php-class/issues/28#issuecomment-5723770 –

+0

$ конфиг = массив ('ключ' => '-AWS-ключ', «секрет '=>' the-aws-secret ', ' region '=> Region :: US_EAST_1 ); Это начальный момент, но я дал ему шанс. Все еще не работает. – Stech

0

Обновление до последнего пакета AWS SDK для PHP 2.2.1. Работало на версии 2.1.0, у которой, по-видимому, было несколько ошибок. Если вы находитесь на Ubuntu 10.04, это немного грубо. (См. Комментарии об обновлении версии PHP здесь: http://www.zalexblog.com/2011/01/07/installing-php-5-3-3-on-ubuntu-10-04/)

Смежные вопросы