我正在使用Django + nginx构建一个音乐播放器应用程序,我需要一个支持字节范围请求的后端。
Django正确验证媒体文件,但django dev服务器不支持范围请求(206部分响应)。在使用this configuration后,Nginx直接提供字节范围请求,我验证了响应头具有内容范围。但是我无法将请求从django转发到nginx,以提供内容。
我尝试在django视图中使用X-Accel-Redirect但仍然没有响应标头的内容范围与文件直接由nginx提供的方式相同。
所以我试图找到一种使用Django进行身份验证的方法,并使用nginx或其他静态文件服务器提供对字节范围请求的支持。
答案 0 :(得分:7)
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
这对我有用。现在使用django +使用nginx进行身份验证验证。