AWS Rekognition给出了InvalidS3Exeption错误

Rjb*_*ith 5 amazon-s3 amazon-web-services amazon-rekognition

每次我运行命令

aws rekognition detect-labels --image "S3Object={Bucket=BucketName,Name=picture.jpg}" --region us-east-1
Run Code Online (Sandbox Code Playgroud)

我得到这个错误。

InvalidS3ObjectException: An error occurred (InvalidS3ObjectException) when calling the DetectLabels operation: Unable to get image metadata from S3.  Check object key, region and/or access permissions.
Run Code Online (Sandbox Code Playgroud)

我正在尝试检索我正在从事的项目的标签,但似乎无法超越这一步。我用访问密钥,秘密密钥,us-east-1区域和json配置了aws作为输出格式。

我也尝试了下面的代码,但收到了完全相同的错误(我将BucketName正确替换为存储桶的名称。)

import boto3

BUCKET = "BucketName"
KEY = "picture.jpg"

def detect_labels(bucket, key, max_labels=10, min_confidence=90, region="eu-west-1"):
    rekognition = boto3.client("rekognition", region)
    response = rekognition.detect_labels(
        Image={
            "S3Object": {
                "Bucket": bucket,
                "Name": key,
            }
        },
        MaxLabels=max_labels,
        MinConfidence=min_confidence,
    )
    return response['Labels']


for label in detect_labels(BUCKET, KEY):
    print "{Name} - {Confidence}%".format(**label)
Run Code Online (Sandbox Code Playgroud)

我可以在我的用户帐户上看到它正在调用Rekognition。 该图显示了正在从IAM调用它。

看来问题出在我的S3存储桶中,但我还没有发现问题。

Sat*_*ave 5

出于稳定性原因,S3 和 Rekognition 的区域应该相同。

更多信息:https://forums.aws.amazon.com/thread.jspa?threadID= 243999