我正在尝试使用 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
提交
取消