【发布时间】:2019-01-28 06:02:34
【问题描述】:
当我使用图像或视频(s3 源)执行 Rekognition 时出现以下错误。
" 在 "https://rekognition.us-east-1.amazonaws.com" 上执行 "SearchFacesByImage" 时出错;AWS HTTP 错误:客户端错误:POST https://rekognition.us-east-1.amazonaws.com 导致 400 错误请求响应:{"__type":"InvalidS3ObjectException","Code":"InvalidS3ObjectException ","Logref":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"," (截断...) InvalidS3ObjectException (client): 无法从 S3 获取对象元数据。检查对象键、区域和/或访问权限。 - {"__type":"InvalidS3ObjectException","Code":"InvalidS3ObjectException.
下面是我的代码。
$credentials = new Credentials('xxxxxxxxx', 'xxxxxxxxxxxx');
$rekognitionClient = RekognitionClient::factory(array(
'region' => "us-east-1",
'version' => 'latest',
'credentials' => $credentials,
'http' => [ 'verify' => false ]
));
$result = $rekognitionClient->searchFacesByImage([
'CollectionId' => ''.$collection_id.'', // REQUIRED
'FaceMatchThreshold' => 25.0,
'Image' => [ // REQUIRED
'S3Object' => [
'Bucket' => 'facetracking',
'Name' => 'test.jpg',
'Key' => 'test.jpg',
'Version' => 'latest',
],
], 'MaxFaces' => 2,
]);
当我上传到 S3 时,从 S3 获取一个对象并在 Rekognition 中创建一个集合 一切正常,但我无法在 Laravel PHP 中执行 searchFacesByImage(来源:S3)和 startFaceSearch。
在 S3 中设置存储桶策略后也很累,如下所示。
{
"Version": "2012-10-17",
"Id": "PolicyXXXXXX",
"Statement": [
{
"Sid": "StmtXXXXXX",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXX:root"
},
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectTagging",
"s3:GetObjectTorrent",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::<MyBucketName>/*",
"arn:aws:s3:::<MyBucketName>"
]
}
]
}
【问题讨论】:
标签: php laravel amazon-web-services laravel-5 amazon-s3