【发布时间】:2016-08-18 11:52:53
【问题描述】:
要求:使用flask框架上传文件。上传到服务器后,用户应该能够在 UI 中看到文件。
当前代码:为了满足上述要求,我编写了代码来上传足够大的文件,并且可以正常工作(~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)
所以我要做的是首先将文件保存到服务器中的临时位置,然后读取数据并将其放入我们的数据库中。我认为这是我苦苦挣扎的地方,我不确定什么是最好的方法。
我是否应该从用户那里获取输入并返回成功消息(显然用户将无法立即访问该文件)并使用一些将数据放入数据库的后台进程一种排队系统。或者还应该做些什么来优化代码。
【问题讨论】:
标签: python csv flask large-files