要求:使用燒瓶框架上傳文件。一旦上傳到服務器用戶應該能夠在用戶界面中看到該文件。使用python燒瓶上傳大型csv文件的最佳方式
當前代碼:爲了滿足上述要求,我編寫了上傳足夠大的文件的代碼,並且其工作正常(〜30 MB文件,當然沒有那麼快)。但是,當我嘗試上傳(〜100 MB)文件時,它耗時過長,進程永遠無法完成。
這是目前我在做什麼:
UPLOAD_FOLDER =「/ tmp目錄」
file = request.files['filename']
description = request.form['desc']
filename = secure_filename(file.filename)
try:
file.save(os.path.join(UPLOAD_FOLDER, filename))
filepath = os.path.join(UPLOAD_FOLDER, filename)
except Exception as e:
return e
data = None
try:
with open(filepath) as file:
data = file.read()
except Exception as e:
log.exception(e)
所以我在做什麼,首先將文件保存到服務器的臨時位置,然後從此閱讀數據並將其放入我們的數據庫。我認爲這是我掙扎的地方,我不確定什麼是最好的方法。
我應該從用戶那裏得到輸入並返回成功消息(顯然用戶將不能立即訪問該文件,然後),並使用某種隊列系統將數據放入數據庫後臺進程。或者還應該做些什麼來優化代碼。