服务器无法上传带有gunicorn的大文件

时间:2017-05-09 11:41:29

标签: python flask gunicorn large-files

我用烧瓶制作了一个小型服务器来上传文件(然后用它们做一些事情)。上传是通过和发送文件的HTML表单:

<form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit">
</form>

在服务器端,我执行以下操作:

@app.route('/upload', methods=['POST'])
def upload():
    if 'file' in request.files:
        f = request.files['file']
        file_path = os.path.join(app.config['UPLOAD_FOLDER'], werkzeug.secure_filename(f.filename))
        f.save(file_path)

    return 'File is being uploaded'

它适用于小文件,但在大文件上,它会失败。问题是如果我手动运行脚本而不是通过gunicorn python main.py我可以上传以前无法访问的文件。我以为我需要改变gunicorn的最大尺寸但是找不到怎么做。

我还想过使用一个流,然后再写一些块,但是我找不到如何用烧瓶访问流。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

可能是由于超时问题。默认情况下,如果进程超过30秒,gunicorn将挂起。上传大文件的时间很容易超过这个数量。您可能希望在启动gunicorn时指定自定义超时值。例如,如果要将超时设置为300秒:exec gunicorn [app]:[app] --timeout 300

来源:gunicorn timeout setting