我有一个Flask应用程序在Apache后面作为反向代理运行,这里是下载zip文件的URL的路径:
@application.route('/files/<path:name>')
def files(name=None):
if "UPLOAD_DIR" not in os.environ:
return "upload disabled", httplib.NOT_FOUND
if ".." in name:
return "no no", httplib.BAD_REQUEST
_dir = os.path.dirname(name)
name = os.path.basename(name)
path = os.path.join(os.environ['UPLOAD_DIR'], _dir)
return send_from_directory(path, name, as_attachment=True)
如果我多次下载文件,下载的zip文件将会损坏,我无法打开它。
我的gunicorn配置是:
gunicorn -b localhost:5000 -t 300 -w 7 --worker-connections 7 application:application
编辑:最初,当我多次下载同一个文件时,我有太多损坏的文件,我有一个工作人员,但是一旦我添加了其他6个(总共7个工作人员),事情变得更好但是一些zip文件仍然损坏如果多次下载。