2011-03-24 51 views
2

我想使用亚马逊提供的s3 sdk将图像保存到亚马逊的S3云服务。该代码实际上是非常简单的,这是我的代码中调用:亚马逊S3 PHP图像保存卷曲错误

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服务器上运行代码时,一切正常。当我将它移动到远程Web服务器时,运行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 

谷歌告诉我,错误(55)是一个网络错误。我知道curl工作正常,因为我有其他的PHP项目运行,使用curl就好了。我认为,如果我在我的扩展目录中有php-curl.so,一切都会起作用,(除了警告它已经加载了两次),但是php-common附带了它已经打包在一起。

我真的不知道要去尝试什么,因为它在本地工作,而不是在Linux机器上。我一直试图通过亚马逊提供的sdk来查看它是否尝试以某种奇怪的方式调用php-curl,但我还没有任何运气。

任何想法将不胜感激!

回答

1

,你可以通过运行兼容性测试检查卷曲版本。所以它不应该是一个问题。我看到了另一个线程提示禁用SSL或导入SSL证书到您的porgram

2

我也收到了这个错误。一些检查与的get_object代替create_object后,我得到的消息请求时间和当前时间之间的差异太大。来自S3的。服务器时间提前20分钟。在设置了正确的时间get_object并且create_object正确工作之后