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

我正在尝试使用 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 ... }


墨色风雨
浏览 116回答 2
2回答

哈士奇WWW

为了解决这个问题,我需要将我的相机设置为将图像转换为base64,然后将其上传到服务器。在服务器中,我再次转换它,然后根据需要使用它。Base64 是一组二进制到文本的编码方案,通过将二进制数据转换为 radix-64 表示形式来表示 ASCII 字符串格式的二进制数据。因此,您会将图像转换为字符串然后发送,这是我发现的上传图像的最佳方式。

慕桂英546537

我正在为此苦苦挣扎。我正在使用 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python