2013-07-22 110 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

非常感謝!我很感激。在處理文檔時我錯過了這一點。 –