[英]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.