如何在httppost有效负载中存储JPG图像

2024-05-23 19:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我有一个简单的Flask服务器,一旦用户点击/端点,它就会呈现一个HTML表单,在那里她可以选择一个图片上传。单击“submit”后,服务器将图像作为POST请求接收,并对其执行一些处理,并返回一个JSON,其中包含结果分析,例如:

{
"status": "ok",
"coins found": 10
}

在浏览器中一切正常。我甚至设法使用Postman绕过表单填写阶段,将POST请求直接发送到服务器,并附加一个图像,然后得到预期的响应。在

在下一个阶段,我想看看更改图像处理管道将如何影响服务器吞吐量。为此,我打算使用Vegeta,现在我需要将我的有效负载作为一个文本文件,这样我就可以告诉Vegeta如何创建执行攻击的请求。在

我真正想知道的是:“如何将jpg图像存储在一个纯文本文件中,这样vegeta就可以提取它并由Flask服务器正确地解码它”。在

现在,我尝试读取图像,将字节流编码为base64并将其存储在文件中,例如:

^{pr2}$

但是Flask应用程序无法打开图像,并出现以下错误:OSError: cannot identify image file <_io.BytesIO object at 0x12c17bc50>。在

为了完整起见,这是我用来打开图像的代码,可以很好地处理来自浏览器和邮递员的请求:

    import io
    from PIL import Image

    bytestream = io.BytesIO(request.files['image'])
    image = Image.open(bytestream)

Tags: io图像imageimport服务器flask表单浏览器