Unverified Commit 89960404 authored by Antonio Morillas's avatar Antonio Morillas Committed by GitHub
Browse files

Update servers.py

Checks Django version to make sure.
parent 5ea429bd
...@@ -10,6 +10,7 @@ from urllib.parse import quote ...@@ -10,6 +10,7 @@ from urllib.parse import quote
from django.conf import settings from django.conf import settings
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.http import FileResponse, HttpResponse, HttpResponseNotModified from django.http import FileResponse, HttpResponse, HttpResponseNotModified
from django.utils import version
from django.utils.http import http_date from django.utils.http import http_date
from django.utils.module_loading import import_string from django.utils.module_loading import import_string
from django.views.static import serve, was_modified_since from django.views.static import serve, was_modified_since
...@@ -61,8 +62,13 @@ class DjangoStreamingServer: ...@@ -61,8 +62,13 @@ class DjangoStreamingServer:
def serve(private_file): def serve(private_file):
# Support If-Last-Modified # Support If-Last-Modified
mtime = private_file.modified_time.timestamp() mtime = private_file.modified_time.timestamp()
if not was_modified_since(private_file.request.META.get('HTTP_IF_MODIFIED_SINCE'), mtime): size = private_file.size
return HttpResponseNotModified() if version.get_main_version() >= '4.1':
was_modified = was_modified_since(private_file.request.META.get('HTTP_IF_MODIFIED_SINCE'), mtime)
else:
was_modified = was_modified_since(private_file.request.META.get('HTTP_IF_MODIFIED_SINCE'), mtime, size)
if not was_modified: return HttpResponseNotModified()
# As of Django 1.8, FileResponse triggers 'wsgi.file_wrapper' in Django's WSGIHandler. # As of Django 1.8, FileResponse triggers 'wsgi.file_wrapper' in Django's WSGIHandler.
# This uses efficient file streaming, such as sendfile() in uWSGI. # This uses efficient file streaming, such as sendfile() in uWSGI.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment