无法从 S3 获取对象元数据。检查 aws Rekognition 中的对象键、区域和/或访问权限

新手上路,请多包涵
import boto3

if __name__ == "__main__":

    bucket='MyBucketName'
sourceFile='pic1.jpg'
targetFile='pic2.jpg'

client=boto3.client('rekognition','us-east-1')

response=client.compare_faces(SimilarityThreshold=70,
                              SourceImage={'S3Object':{'Bucket':bucket,'Name':sourceFile}},
                              TargetImage={'S3Object':{'Bucket':bucket,'Name':targetFile}})

for faceMatch in response['FaceMatches']:
    position = faceMatch['Face']['BoundingBox']
    confidence = str(faceMatch['Face']['Confidence'])
    print('The face at ' +
           str(position['Left']) + ' ' +
           str(position['Top']) +
           ' matches with ' + confidence + '% confidence')

我正在尝试比较存储桶中存在的两个图像,但无论我选择哪个区域,我总是会收到以下错误:-

botocore.errorfactory.InvalidS3ObjectException:调用 CompareFaces 操作时发生错误 (InvalidS3ObjectException):无法从 S3 获取对象元数据。检查对象密钥、区域和/或访问权限。

我的存储桶区域是 us-east-1,我在我的代码中配置了相同的区域。我究竟做错了什么?

原文由 Harsh Vardhan Parashar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 587
2 个回答

我有同样的问题。我所做的修复是重新排列我的存储桶和文件夹。确保您的图像直接在您的存储桶中,而不是在您存储桶中的文件夹中。还要仔细检查图像的名称是否正确以及一切是否正确。

原文由 Sean Li 发布,翻译遵循 CC BY-SA 4.0 许可协议

检查 S3 和 Image Rekognition 是否在同一区域,我知道,它不是很好或没有记录(我猜),但是这些人在 这里这里 谈论它

原文由 Italo José 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题