I'm trying to initialize the S3 client from the AWS PHP SDK. My code is as follows:
$credentials = new Credentials(self::KEY, self::SECRET);
$s3_client = new S3Client([
'version' => 'latest',
'region' => $region,
'credentials' => $credentials
]);
But am getting the following errors:
A PHP Error was encountered
Severity: 4096
Message: Argument 1 passed to Aws\Common\Client\AbstractClient::__construct() must implement interface Aws\Common\Credentials\CredentialsInterface, array given, called in /opt/showhouse/www/application/models/showhouse/common/services/aws/aws.php on line 47 and defined Filename: Client/AbstractClient.php
Line Number: 73
Any ideas where I am going wrong? Am using the latest version of the SDK installed via Composer.
I'm guessing you are using AWS PHP SDK version 2.0. If so, then the S3Client indeed implements the AbstractClient class. This means that the parameters are: __construct( Aws\Common\Aws\Common\Credentials\CredentialsInterface $credentials, Aws\Common\Aws\Common\Signature\SignatureInterface $signature, Guzzle\Common\Collection $config )
The S3Client implementation you are attempting to use is from version 3.0 of the AWS PHP SDK.
Recommendation: Try using a downloaded zip file to install AWS SDK instead of Composer
I had the same problem when I used Composer to install AWS SDK because it appeared to be the recommended way in AWS documentation from the following URL.
https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html
But, after reading the helpful answer by Grilly, I decided to try using a downloaded zip file to install AWS SDK. The problem disappeared after I installed this way.
From a README file contained in the zip file, I could find a notification that the version of AWS SDK installed using the downloaded zip file was 3.0. Although I couldn't check version of AWS SDK installed using Composer because I couldn't find how, I am guessing that the version of AWS SDK installed using Composer was somewhat old enough to cause the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With