我正在嘗試使用 Python 將一張圖像發送到我的 Lambda 函數以測試一個項目,但 Postman 給我一個錯誤,我不知道如何解決它。我的代碼只是檢測鍵“圖像”中是否有一些數據并返回一些消息。我正在使用 Postman 發送 POST 請求,我單擊“正文”選項卡,選擇“表單數據”選項,然后為密鑰寫入圖像并從我的計算機中選擇圖像文件(圖像大小為 27 kb)。這是我的 Lambda 函數中的代碼:def lambda_handler(event, context): if event['image']: return { "Message": 'Everything went ok' }這是我從 Postman 收到的錯誤消息:{ “消息”:“無法將請求正文解析為 json:數值中的意外字符('-'(代碼 45)):期望數字 (0-9) 跟隨減號,對于 [Source 處的有效數值: (byte[])"----------------------------137965576541301454606184\r\n內容配置:表單數據;名稱=“圖像”;filename="TestImage.png"\r\nContent-Type: image/png\r\n\r\n?PNG\r\n\n ... }
2 回答
哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
為了解決這個問題,我需要將我的相機設置為將圖像轉換為base64,然后將其上傳到服務器。
在服務器中,我再次轉換它,然后根據需要使用它。Base64 是一組二進制到文本的編碼方案,通過將二進制數據轉換為 radix-64 表示形式來表示 ASCII 字符串格式的二進制數據。
因此,您會將圖像轉換為字符串然后發送,這是我發現的上傳圖像的最佳方式。
慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
我正在為此苦苦掙扎。我正在使用 Postman,得到 UnidentifiedImageError。下面的工作。
發布圖片:
data = open('x.jpg','rb').read()
data = base64.b64encode(data).decode("utf8")
r = requests.post('url',data=data)
函數端處理
def lambda_handler(event, context):
image_bytes = event['body'].encode('utf-8')
img_b64dec = base64.b64decode(image_bytes)
img_byteIO = BytesIO(img_b64dec)
image = Image.open(img_byteIO)
添加回答
舉報
0/150
提交
取消
