簡體   English   中英

通過PHP SDK實現S3客戶端初始化錯誤

[英]S3 client initialization error via PHP SDK

我正在嘗試從AWS PHP SDK初始化S3客戶端。 我的代碼如下:

$credentials = new Credentials(self::KEY, self::SECRET);

$s3_client = new S3Client([
    'version'     => 'latest',
    'region'      => $region,
    'credentials' => $credentials
]);

但是我收到以下錯誤:

遇到PHP錯誤

嚴重程度:4096

消息:傳遞給Aws \\ Common \\ Client \\ AbstractClient :: __ construct()的參數1必須實現接口Aws \\ Common \\ Credentials \\ CredentialsInterface,給定的數組,在/ opt / showhouse / www / application / models / showhouse / common / services中調用第47行/aws/aws.php並定義了Filename:Client / AbstractClient.php

行號:73

我出錯的任何想法? 我使用的是通過Composer安裝的最新版本的SDK。

我猜你正在使用AWS PHP SDK 2.0版。 如果是這樣,那么S3Client確實實現了AbstractClient類。 這意味着參數是:__ construct(Aws \\ Common \\ Aws \\ Common \\ Credentials \\ CredentialsInterface $ credentials,Aws \\ Common \\ Aws \\ Common \\ Signature \\ SignatureInterface $ signature,Guzzle \\ Common \\ Collection $ config)

您嘗試使用的S3Client實現來自AWS PHP SDK的3.0版。

建議:嘗試使用下載的zip文件來安裝AWS SDK而不是Composer

當我使用Composer安裝AWS SDK時,我遇到了同樣的問題,因為它似乎是來自以下URL的AWS文檔中的推薦方法。

https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html

但是,在閱讀Grilly的有用答案后,我決定嘗試使用下載的zip文件來安裝AWS SDK。 我安裝這種方式后問題就消失了。

從zip文件中包含的README文件中,我可以找到使用下載的zip文件安裝的AWS SDK版本為3.0的通知。 雖然我無法檢查使用Composer安裝的AWS SDK的版本,因為我找不到如何,我猜測使用Composer安裝的AWS SDK版本有點老,足以導致問題。

我有同樣的問題,並通過使用PHP 5.6與AWS SDK v3.x修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM