From 2a1e1c0d6a99d70c06e1b50ad0e2419503a7671e Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 30 Jun 2020 22:13:03 +0000 Subject: [PATCH] views: avoid Document read by django, use serve_media with X-Accel instead --- .../templates/teleforma/course_detail.html | 2 +- teleforma/templates/teleforma/courses.html | 1 - teleforma/views/core.py | 26 ++++++++++--------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/teleforma/templates/teleforma/course_detail.html b/teleforma/templates/teleforma/course_detail.html index 16c89692..6357f19e 100644 --- a/teleforma/templates/teleforma/course_detail.html +++ b/teleforma/templates/teleforma/course_detail.html @@ -61,4 +61,4 @@ $(document).ready(function(){ {% endif %} {% endif %} {% endif %} -{% endblock chat %} \ No newline at end of file +{% endblock chat %} diff --git a/teleforma/templates/teleforma/courses.html b/teleforma/templates/teleforma/courses.html index 2c15236d..073481af 100644 --- a/teleforma/templates/teleforma/courses.html +++ b/teleforma/templates/teleforma/courses.html @@ -12,7 +12,6 @@ $(document).ready(function(){ {% endblock extra_javascript %} - {% block content %}
diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 695600fc..61ee1974 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -432,13 +432,14 @@ class DocumentView(CourseAccessMixin, DetailView): courses = get_courses(request.user) document = Document.objects.get(id=pk) if get_access(document, courses): - fsock = open(document.file.path.encode('utf8'), 'r') - mimetype = mimetypes.guess_type(document.file.path)[0] - extension = mimetypes.guess_extension(mimetype) - response = HttpResponse(fsock, mimetype=mimetype) - response['Content-Disposition'] = "attachment; filename=%s%s" % \ - (document.title.encode('utf8'), extension) - return response + return serve_media(document.file.path.encode('utf8'), streaming=False) + #fsock = open(document.file.path.encode('utf8'), 'r') + #mimetype = mimetypes.guess_type(document.file.path)[0] + #extension = mimetypes.guess_extension(mimetype) + #response = HttpResponse(fsock, mimetype=mimetype) + #response['Content-Disposition'] = "attachment; filename=%s%s" % \ + # (document.title.encode('utf8'), extension) + #return response else: return redirect('teleforma-home') @@ -446,11 +447,12 @@ class DocumentView(CourseAccessMixin, DetailView): courses = get_courses(request.user) document = Document.objects.get(id=pk) if get_access(document, courses): - fsock = open(document.file.path.encode('utf8'), 'r') - mimetype = mimetypes.guess_type(document.file.path)[0] - extension = mimetypes.guess_extension(mimetype) - response = HttpResponse(fsock, mimetype=mimetype) - return response + return serve_media(document.file.path.encode('utf8'), streaming=True) + #fsock = open(document.file.path.encode('utf8'), 'r') + #mimetype = mimetypes.guess_type(document.file.path)[0] + #extension = mimetypes.guess_extension(mimetype) + #response = HttpResponse(fsock, mimetype=mimetype) + #return response else: return redirect('teleforma-home') -- 2.39.5