我有一个Flask网络应用程序,允许用户上传文件,然后在浏览器中下载或显示它们。我应该在生产时使用send_from_directory
从我服务器上的上传文件夹中提供这些文件吗?
答案 0 :(得分:0)
最好让nginx提供静态文件。众所周知,烧瓶的性能相对较差。但是,如果您的服务器无法充分利用,那就无所谓了。
答案 1 :(得分:0)
我已经完成了那种想法。我正在使用烧瓶休息。但你可以用这个作为参考。 用于上传文件
from document_folder.config import dir_path
file = data['file'] #data is a reqparse.
filename = werkzeug.secure_filename(file.filename)
file.save(os.path.join(str(dir_path), str(filename))
config.py。将其放在文档静态文件夹
中 import os
dir_path = os.path.dirname(os.path.realpath(__file__))
下载 您必须将文档的名称保存到数据库中,以便下载文档。
docu = DocumentModel.exists(_id)
if docu:
filename = docu.filename
return send_file(os.path.join(dir_path, filename), as_attachment=True)
解析器应该是这样的。
parser.add_argument('file',
type=werkzeug.datastructures.FileStorage,
location='files'
)