簡體   English   中英

Amazon Rekognition API - S3 元數據問題

[英]Amazon Rekognition API - S3 MetaData Issue

我正在嘗試使用 AWS Image Rekognition API 檢測圖像中的人臉。 但得到以下錯誤:

錯誤 1:

ClientError: An error occurred (InvalidS3ObjectException) when calling the DetectFaces operation: Unable to get image metadata from S3.  Check object key, region and/or access permissions.

Python代碼1:

def detect_faces(object_name="path/to/image/001.jpg"):
    client = get_aws_client('rekognition')

    response = client.detect_faces(
        Image={
            # 'Bytes': source_bytes,
            'S3Object': {
                'Bucket': "bucket-name",
                'Name': object_name,
                'Version': 'string'
            }
        },
        Attributes=[
            'ALL',
        ]
    )

    return response

對象“path/to/image/001.jpg”存在於 AWS S3 存儲桶“存儲桶名稱”中。 並且區域名稱也是正確的。

這個對象'001.jpg'的權限是:每個人都被授予打開/下載/查看權限。 對象的元數據:內容類型:圖像/jpeg

不知道如何調試這個。 有什么建議可以解決這個問題嗎?

謝謝,

您似乎要求服務獲取版本 ID 為string的對象。

版本

如果存儲桶啟用了版本控制,您可以指定對象版本。

類型:字符串

長度限制:最小長度為 1。最大長度為 1024。

要求:否

http://docs.aws.amazon.com/rekognition/latest/dg/API_S3Object.html#rekognition-Type-S3Object-Version

從您的請求參數中刪除'Version': 'string' ,除非您確實打算從版本化存儲桶中獲取對象的特定版本,在這種情況下,請提供相關對象的實際版本 ID。

我遇到了同樣的問題,避免在存儲桶中使用“-”或空格,上傳的文件名為我解決了這個問題。

也許刪除下划線也有幫助。

舊線程,新解決方案:我收到相同的錯誤消息。 我的錯誤是由於區域不匹配; 我的 S3 存儲桶位於 us-east-2,但我的識別客戶端默認為 us-west-1。 我換了線

client = get_aws_client('rekognition')

client = get_aws_client('rekognition', region_name='us-east-2')

它奏效了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM