From a9a697ff9be6fc301946e98bd47a9f3ba4cc8b6e 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 | 3 +-- teleforma/views/core.py | 26 ++++++++++--------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/teleforma/templates/teleforma/course_detail.html b/teleforma/templates/teleforma/course_detail.html index 575f3095..72335466 100644 --- a/teleforma/templates/teleforma/course_detail.html +++ b/teleforma/templates/teleforma/course_detail.html @@ -108,4 +108,4 @@ {% endif %} {% newsitems_portlet course_id=course.id period_id=period.id %} -{% 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 112cd3ae..5ca73edb 100644 --- a/teleforma/templates/teleforma/courses.html +++ b/teleforma/templates/teleforma/courses.html @@ -13,7 +13,6 @@ {% endblock extra_javascript %} - {% block content %}
@@ -230,4 +229,4 @@
-{% endblock content %} \ No newline at end of file +{% endblock content %} diff --git a/teleforma/views/core.py b/teleforma/views/core.py index f56174c7..87d50a5d 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -592,13 +592,14 @@ class DocumentView(CourseAccessMixin, DetailView): courses = get_courses(request.user) document = Document.objects.get(pk=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') @@ -606,11 +607,12 @@ class DocumentView(CourseAccessMixin, DetailView): courses = get_courses(request.user) document = Document.objects.get(pk=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