Django + uwsgi:如何在HttpResponse中设置无限的文件大小

时间:2015-10-26 10:31:13

标签: python django buffer httpresponse uwsgi

我使用的是Python2.7,Django==1.7uwsgi

我需要使用HttpResponse流式传输mp4文件,以便在html(例如video标记)中进行渲染,如下所示:

def test(request):
    return render(request,
                  'shared/test.html',
                  {'video_url': BASE_URL + '/stream_video/'})


def stream_video(request):
    path = '/var/www/test/video_file.mp4'
    video_file = open(path, 'r')
    response = HttpResponse(video_file, content_type='video/mp4')
    response['Content-Length']    = os.path.getsize(path)
    return response

我通过uwsgi使用以下参数运行我的Django应用程序:

uwsgi --http :8000 --chdir /var/www/test --module test.wsgi --chunked-input-timeout 40000 --post-buffering 12829000 --buffer-size 12829000 --post-buffering-bufsize 12829000 --fastrouter-buffer-size 12829000 --http-buffer-size 12829000

在小视频(小于1MB)中它可以正常工作,但在其他情况下我有uwsgi错误,如下所示:

  

uwsgi_response_write_body_do():通过对等方重置连接   GET / stream_video /(192.168.0.224)期间的[core / writer.c第331行]   IOError:写入错误

如您所见,我设置了所有缓冲区大小参数来解决此问题。但它对我没有用。

你的想法是什么?

0 个答案:

没有答案