为了账号安全,请及时绑定邮箱和手机立即绑定

将图像文件发送到 AWS Lambda 函数

将图像文件发送到 AWS Lambda 函数

墨色风雨 2023-03-22 13:58:27
我正在尝试使用 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 字符串格式的二进制数据。

因此,您会将图像转换为字符串然后发送,这是我发现的上传图像的最佳方式。


查看完整回答
反对 回复 2023-03-22
?
慕桂英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)


查看完整回答
反对 回复 2023-03-22
  • 2 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信