Как удалить php фатальную ошибку?
Это код AWS (ec2-os- linux) для получения изображения в Amazon Rekognition при передаче в EC2.
Это ошибка, которая возникает:
PHP Неустранимая ошибка: Uncaught TypeError: Аргумент 1, передаваемый в Aws \ Common \ Client \ AbstractClient :: __ construct (), должен быть экземпляром Aws \ Common \ Credentials \ CredentialsInterface, заданный массив, вызывается в / var / www/html/face/index.php в строке 43 и определяется в / var / www/html/face/vendor/aws/aws-sdk-php/src/Aws/Common/Client/AbstractClient.php: 73
Трассировка стека: # 0 / var / www/html/face/index.php (43): Aws \ Common \ Client \ AbstractClient-> __construct (Array) # 1 {main} добавляется в / var / www/html/face/vendor/aws/aws-sdk-php/src/Aws/Common/Client/AbstractClient.php в строке 73
Мой код:
require_once(__DIR__ . '/vendor/autoload.php');
use Aws\S3\S3Client;
use Aws\Rekognition\RekognitionClient;
$bucket = 'aws-webinar-ethnus';
$keyname = 's.jpg';
$s3 = new S3Client([
'region' => 'us-east-2',
'version' => '2006-03-01',
'signature' => 'v4'
]);
try {
// Upload data.
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => __DIR__. "/$keyname",
'ACL' => 'public-read-write'
]);
// Print the URL to the object.
$imageUrl = $result['ObjectURL'];
if($imageUrl) {
echo "Image upload done... Here is the URL: " . $imageUrl;
$rekognition = new RekognitionClient([
'region' => 'us-east-2',
'version' => 'latest',
]);
$result = $rekognition->detectFaces([
'Attributes' => ['DEFAULT'],
'Image' => [
'S3Object' => [
'Bucket' => $bucket,
'Name' => $keyname,
'Key' => $keyname,
],
],
]);
echo "Totally there are " . count($result["FaceDetails"]) . " faces";
}
} catch (Exception $e) {
echo $e->getMessage() . PHP_EOL;
}