2017-05-09 104 views
0

我做了一個小型服務器與燒瓶上傳文件(然後做他們的東西)。上傳是通過和發送文件的HTML表單:服務器無法上傳與gunicorn大文件

<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的最大尺寸,但無法找到如何去做。

我也想過使用一個流,然後寫塊,但我再也找不到如何訪問與燒瓶流。

感謝您的幫助

+0

以什麼方式? – pvg

回答

-1

這可能是由於超時問題。默認情況下,如果一個進程需要超過30秒,gunicorn會掛起。上傳大文件的時間很容易超過這個數量。您可能想要在啓動gunicorn時指定自定義超時值。例如,如果你想超時設置爲300秒:exec gunicorn [app]:[app] --timeout 300

來源:「它工作正常的小文件,但對大文件,它失敗」 gunicorn timeout setting