python - 如何使用 werkzeug 流式传输文件?

标签 python werkzeug

我想通过 werkzeug 传输一个大文件.
目前我的 wsgi 应用程序看起来像这样:

from werkzeug.wrappers import Request, Response
from werkzeug.wsgi import ClosingIterator, wrap_file
import os

class Streamer(object):

    def __init__(self):
        pass

    def __call__(self, environ, start_response):
        request = Request(environ)
        filename = os.getcwd() + "/bigfile.xml"
        try:
            response = wrap_file(environ, open(filename) )
            return response
        except HTTPException, e:
            response = e
            return ClosingIterator(response(environ, start_response))

我不确定我应该如何处理 wrap_file 返回的对象功能。

最佳答案

我自己还没有尝试过,但我认为下面的方法会奏效。

g = file(path_to_bigfile) # or any generator
return Response(g, direct_passthrough=True)

关于python - 如何使用 werkzeug 流式传输文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166129/

相关文章:

python - 使用 Ansible Python API,我如何才能访问我的代码中的任务级输出?

python - Django manage.py runserver 抛出 ImportError : AdminMediaHandler

python - Flask 蓝图和登录重定向问题

python - 无法确定导致 Flask Werkzeug BuildError 的原因

flask - 具有独立端口的 werkzeug DispatcherMiddleware

Python 字符串转 BSTR

python - 学习 float 长度

Python 重音坟墓不好的做法?

python - Ubuntu Python shebang 行不工作

Python Werkzeug : modify Request values (forms and args) prior to retrieval