使用Django + nginx以字节范围请求流式传输音乐

pra*_*tsJ 4 python media django nginx

我正在使用Django + nginx构建一个音乐播放器应用程序,我需要一个支持字节范围请求的后端.

Django正确验证媒体文件,但django dev服务器不支持范围请求(206部分响应).在使用此配置后,Nginx直接提供字节范围请求,我验证了响应头具有内容范围.但是我无法将请求从django转发到nginx,以提供内容.

我尝试在django视图中使用X-Accel-Redirect,但仍然没有响应标头的内容范围,就像文件直接由nginx提供一样.

  • Django dev服务器 - 完成身份验证但没有字节范围支持(响应200)
  • Nginx - 无身份验证,字节范围请求支持(响应206)
  • Django视图+ X-Accel-Redirect + nginx - 完成身份验证但没有字节范围支持(响应200)

所以我试图找到一种使用Django进行身份验证的方法,并使用nginx或其他静态文件服务器提供对字节范围请求的支持.

pra*_*tsJ 8

response = HttpResponse(content_type = mimetype, status=206)
response['Content-Disposition'] = "attachment; filename=%s" % \
                                         (fileModel.FileName)
response['Accept-Ranges'] = 'bytes'
response['X-Accel-Redirect'] = settings.MEDIA_URL + '/' + fileModel.FileData.MD5
response['X-Accel-Buffering'] = 'no'
return response
Run Code Online (Sandbox Code Playgroud)

这对我有用.现在使用django +使用nginx进行身份验证.