[英]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.