Я пытаюсь сохранить изображение в облачном сервисе 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 каким-то странным способом, но мне пока не повезло.
Любые идеи будут с благодарностью!