Linux服务器上的S3Client创建失败

时间:2014-02-14 12:08:28

标签: php linux amazon-web-services amazon-s3

我有这段代码:

<?php
    require('aws/aws-autoloader.php');
    echo "1";
    use Aws\S3\S3Client;
    echo "2";
    $s3Client = S3Client::factory(array(
        'key'    => 'mykey',
        'secret' => 'mysecret',
    ));
    echo "3";
    echo  "OK!";
?>

在我的机器上输出为“123OK!” (按照预期)将其上传到服务器后我只获得“12”(意味着对象的创建失败了?)

当服务器运行时,我的本地机器正在运行PHP 5.3.27 5.5.5-1chl1~prefined1

更新

我得到的错误:

致命错误:未捕获异常'Guzzle \ Common \ Exception \ RuntimeException',消息'必须安装PHP cURL扩展才能使用Guzzle。'在/var/www/api/1.0/aws/Guzzle/Http/Client.php:70堆栈跟踪:#0 /var/www/api/1.0/aws/Aws/Common/Client/AbstractClient.php(78): Guzzle \ Http \ Client-&gt; __ construct('https://s3.amaz ...',Object(Guzzle \ Common \ Collection))#1

如何在C2上安装linux上的所需内容?

3 个答案:

答案 0 :(得分:3)

sudo apt-get install php5-curl
sudo service apache2 restart

答案 1 :(得分:2)

错误消息显示:

  

必须安装PHP cURL扩展才能使用Guzzle。

所以......你需要安装PHP cURL扩展。

  

如何在亚马逊上托管的linux上安装它?

这取决于操作系统。在Ubuntu中安装与在Amazon Linux中安装不同。

答案 2 :(得分:0)

尝试这个怎么样:

<?php

require('aws/aws-autoloader.php');

use Aws\Common\Aws;

$aws_access_key     =   '';     // AWS Access key
$aws_access_security    =   '';     //  AWS Security Key
$aws_default_region =   'ap-southeast-1';   //  Your Default Region
$aws_default_scema      =   'http';             //  Default Protocol Schema

// Instantiate the AWS client with your AWS credentials
$aws = Aws::factory(array(
    'key'    => $aws_access_key,
    'secret' => $aws_access_security,
    'region' => $aws_default_region,
    'scheme' => $aws_default_scema,
));

// Define S3client Object
$s3Client   =   $aws->get('s3');

// Test

var_dump($s3Client);

?>

那应该有用。但我认为你应该使用AWS sdk使用的composer方法。

如果您需要指南或脚本来使用s3,您可以在github上使用我的代码:https://github.com/arizawan/aiss3clientphp