2013-07-22 112 views
2

我遇到了一个令人困惑的问题,即新的PHP SDK for AWS。我使用Composer安装了适用于PHP的AWS开发工具包,并使用最新的稳定版本。不幸的是,它看起来好像S3方法直接映射到Guzzle \ Http \ Message \ Request类,我完全不知道为什么!谁能帮忙?AWS S3方法映射到Guzzle Request类

require "vendor/autoload.php"; 
use Aws\Common\Aws; 
use Aws\S3\S3Client; 

$aws = S3Client::factory(
    array(
     "key"  => "exampleKeyMeep381717", 
     "secret" => "exampleSecretMeep291581", 
     "region" => "us-east-1" 
    ) 
); 

$s3 = $aws->get("s3"); 

$result = $s3->createBucket(array("Bucket" => "bmucket92hta")); 

这是正在打印到屏幕的错误:

Fatal error: Call to undefined method Guzzle\Http\Message\Request::createBucket() 

回答

2

我看到发生了什么。您有

$aws = S3Client::factory(

它创建S3客户端的一个实例。然后你有

$s3 = $aws->get("s3"); 

哪个(因为SDK客户端从Guzzle HTTP客户端继承)创建一个Request对象。


我想你的意思做的是

$aws = Aws::factory(

它创建的AWS服务构建的一个实例。然后做

$s3 = $aws->get("s3"); 

像你现在正在做的,除了正确的对象,以获得S3客户端实例。

这是你从特定地方得到的代码示例吗?

+0

非常感谢!我很感激。在处理文档时我错过了这一点。 –