我正在用Django + nginx构build音乐播放器应用程序,为此我需要支持字节范围请求的后端。
Django正在对媒体文件进行正确的身份validation,但是django dev服务器不支持范围请求(206部分响应)。 在使用这个configuration之后 ,Nginx直接提供字节范围请求,我证实响应头有内容范围。 不过,我无法将django的请求转发给nginx,以便为内容提供服务。
我试着在Django视图中使用X-Accel-Redirect ,但是如果文件已经被nginx直接提供,响应头文件的内容范围仍然不会如此。
所以我试图find一种方法来使用Django进行身份validation,并通过nginx或其他静态文件服务器提供对字节范围请求的支持。
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
这为我解决了。 现在通过nginx与django + streaming进行身份验证已经完成了。