【问题标题】:Amazon S3 PHP image save curl errorAmazon S3 PHP 图像保存 curl 错误
【发布时间】:2011-03-24 18:38:24
【问题描述】:

我正在尝试使用亚马逊提供的 s3 sdk 将图像保存到亚马逊的 S3 云服务。代码实际上非常简单,这是我代码中的调用:

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

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

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

任何想法将不胜感激!

【问题讨论】:

    标签: php curl amazon-s3 amazon


    【解决方案1】:

    我也收到了这个错误。在使用 get_object 而不是 create_object 检查后,我收到消息 请求时间与当前时间之间的差异太大。 来自 S3。服务器时间提前了 20 分钟。设置正确时间后 get_object 和 create_object 也正常工作

    【讨论】:

      【解决方案2】:

      您可以通过运行兼容性测试来检查 curl 版本。所以这应该不是问题。我看到另一个线程建议禁用 ssl 或将 ssl 证书导入您的 porgram

      【讨论】:

        【解决方案3】:

        在 Google 上的一段时间让我找到了this question on AWS' support forums,其中一位亚马逊技术人员提到某些 curl 版本被描述为有缺陷。检查来自curl_version 的输出,也许您正在使用可能有错误的版本之一。

        【讨论】:

          猜你喜欢
          • 2011-12-20
          • 1970-01-01
          • 2013-12-20
          • 2014-01-28
          • 2022-10-15
          • 1970-01-01
          • 1970-01-01
          • 2014-02-02
          • 1970-01-01
          相关资源
          最近更新 更多