2011-03-02 5 views
6

werkzeug을 통해 큰 파일을 스트리밍하고 싶습니다.
현재 내 WSGI 응용 프로그램은 다음과 같습니다werkzeug를 사용하여 파일을 스트리밍하려면 어떻게해야합니까?

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 함수에 의해 반환 된 객체에 무엇을해야하는지 모르겠어요.

답변

15

나 자신을 시도하지는 않았지만 다음과 같이 작동한다고 생각합니다.

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

감사합니다. 그것은 효과가있다. –

관련 문제