因此,我正在尝试使用Flask创建一个简单的Web应用程序。我的应用将收到用户上传的图片,并返回一个包含一些已编辑图片的zip文件(为该图片或类似图片添加一些有趣的表情符号)。我的zip是使用Python创建的。我的问题是:在完全生成该zip后,如何生成该zip的下载URL?我认为将zip存储在服务器端是不好的(只是出于我的客观考虑),因为我的应用是公开的,我的意思是用户不必登录或注册,只需上传文件即可接收zip。
我尝试搜索,有人建议使用base64,还有什么比这更好的方法吗?
答案 0 :(得分:0)
您可以在渲染期间直接创建zip文件。但是,请求时间将受到影响。
也许可以使用一种中间件,但我不能告诉你。
也许您返回一个JWT令牌,其中包含所请求图像的地址。根据要求,将创建zip存档。当然,您也可以将图片地址作为POST或GET参数传递。
@app.route('/get-image')
def get_image():
image_file = request.files['image_addr']
# load and process image here
image_data = ...
# generate zip file
mem = io.BytesIO()
mem.write(gzip.compress(image_data))
mem.seek(0)
return send_file(mem, as_attachment=True,
attachment_filename='archive.gzip',
mimetype='application/gzip')
您正在寻找什么吗?