Как получить S3-изображения с помощью PHP + CURL без получения SignatureDoesNotMatch? - PullRequest
1 голос
/ 08 февраля 2011

У меня есть сайт, управляемый PHP, который извлекает контент из блога Posterous через RSS-канал. В этом фиде находятся изображения с постерными URL-адресами, но когда я их получаю, они перенаправляются на URL-адреса Amazon S3.

В php я использую curl, чтобы попытаться получить изображения и кэшировать их локально, используя код из справочной страницы CURL в PHP: http://www.php.net/manual/en/ref.curl.php#93163 дословно. Иногда он обрабатывает перенаправления на S3, но непредсказуемо, вместо того, чтобы извлекать изображение, он возвращает XML-файл с ошибкой SignatureDoesNotMatch.

Что вызывает это? И что я могу сделать, чтобы предотвратить ошибку?

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Если сбои носят периодический характер, это, вероятно, связано с именами файлов (ключей). Распространенным виновником являются пробелы в именах файлов.

Вам нужно будет URL Кодировать их или заменить пробелы на %20

0 голосов
/ 08 февраля 2011

Насколько я понимаю, SignatureDoesNotMatch - это ошибка, которую вы получаете, когда у вас нет прав доступа к ресурсу. Вы предоставляете необходимые учетные данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...