Amazon S3 PHP изображение сохранить ошибку скручивания - PullRequest
2 голосов
/ 24 марта 2011

Я пытаюсь сохранить изображение в облачном сервисе amazon S3, используя s3 sdk, предоставленный amazon. Код на самом деле очень прост, это вызов в моем коде:

include_once "s3/sdk.class.php";

$s3 = new AmazonS3();
$file = $_FILES['userfile']['tmp_name'];
$name = $netid . "_splash.png";         
$bucket = 'gw_splash';          

$response = $s3->create_object($bucket, $name, array(
'fileUpload' => $file));

Однако я не думаю, что этот вызов - проблема. Когда я запускаю код на локальном сервере WAMP, все работает нормально. Когда я перевожу его на удаленный веб-сервер с php5.2 и centOS 5.5, у меня возникают проблемы. В итоге я вижу эту ошибку в журналах:

[Thu Mar 24 11:38:57 2011] [error] [client 204.11.231.186] PHP Fatal error:  Uncaught exception 'RequestCore_Exception' with message 'cURL resource: Resource id #61; 
cURL error: select/poll returned error (55)' in /var/www/admin/system/application/controllers/s3/lib/requestcore/requestcore.class.php:795\nStack trace:\n#0 /var/www/admin/system/application/controllers/s3/services/s3.class.php(703):
RequestCore->send_request()\n#1 /var/www/admin/system/application/controllers/s3/services/s3.class.php(1196): 
AmazonS3->authenticate('gw_splash', Array)\n#2 /var/www/admin/system/application/controllers/appdetails.php(224): AmazonS3->create_object('gw_splash', '22182_splash.pn...', Array)\n#3 [internal function]: 
Appdetails->do_upload()\n#4 /var/www/admin/system/codeigniter/CodeIgniter.php(236): call_user_func_array(Array, Array)\n#5 /var/www/admin/index.php(115): 
require_once('/var/www/admin/...')\n#6 {main}\n  thrown in /var/www/admin/system/application/controllers/s3/lib/requestcore/requestcore.class.php on line 795, referer:
http://admin.isites.us/appdetails/?netid=22182&appType=1&appId=62981

Google сообщает мне, что ошибка (55) является сетевой ошибкой. Я знаю, что curl работает нормально, так как у меня запущены другие проекты php, использующие curl. Я думаю, что если бы у меня был php-curl.so в моем каталоге расширений, все работало бы (кроме предупреждения, что он был загружен дважды), но php-common поставляется с ним уже в комплекте

Я действительно в недоумении, что еще попробовать, так как он работает локально, а не на машине linux. Я пытался пройти sdk, предоставленный amazon, чтобы увидеть, пытается ли он вызвать php-curl каким-то странным способом, но мне пока не повезло.

Любые идеи будут с благодарностью!

Ответы [ 3 ]

2 голосов
/ 27 ноября 2012

Я также получил эту ошибку. После некоторых проверок с get_object вместо create_object я получил сообщение Слишком большая разница между временем запроса и текущим временем. из S3. Время на сервере было на 20 минут раньше. После установки правильного времени get_object и create_object работали корректно

1 голос
/ 07 декабря 2011

вы можете проверить версию curl, запустив тест на совместимость.Так что это не должно быть проблемой.Я видел другой поток, предлагающий отключить ssl или импортировать сертификат ssl в вашу porgram

0 голосов
/ 24 марта 2011

Немного времени в Google привело меня к этому вопросу на форумах поддержки AWS , на котором технический специалист Amazon упомянул, что некоторые версии curl были описаны как глючные. Проверьте вывод из curl_version, возможно, вы используете одну из возможных ошибочных версий.

...