Dies ist eine Fortsetzung. http://qiita.com/amedama/items/3f2197cadc1ea7d6374e
X-SendFile
Und es ist X-Send File.
Wenn dies im Antwortheader enthalten ist, wird der Webserver unter der WSGI-App, dh diesmal Apache, Bevor eine Antwort an den Benutzer zurückgegeben wird, wird der Pfad erweitert und die Datei an den Benutzer gesendet. Es gibt weitere Artikel zu Nginx, aber wenn Sie ein Modul in ein anderes einfügen, funktioniert es mit Apache.
Die Bewertung der Leistung ist ... Natürlich durch.
Wahrscheinlich nicht, wenn die Datenbank Dateien enthält.
http://stackoverflow.com/questions/7296642/django-understanding-x-sendfile
Fügen Sie für Debian / Ubuntu Apache2 libapache2-mod-xsendfile hinzu.
# prepare "@project_member_required" by yourself
@login_required
@project_member_required
def download_project_file(request, project_name, file_name):
response = HttpResponse()
# prepare this function by yourself
download_path = construct_path_from_file_name(file_name))
response['X-Sendfile'] = download_path
response['Content-Type'] = ''
return response
Im obigen Fall
In den Apache-Einstellungen
XSendFile on
XSendFilePath /opt/yourproject/downloads
In diesem Fall wird / opt / yourproject / downloads auf die Whitelist gesetzt. Wenn Sie dagegen den falschen Pfad angeben, wird nichts gesendet.
Referenz: https://tn123.org/mod_xsendfile/
django-sendfile (https://github.com/johnsensible/django-sendfile)
Das erste, was im Google-Ergebnis von "django X-SendFile" erscheint, ist eine Mine. Dies ist eine Implementierung, die eine Datei auf Django liest, erweitert und als Inhalt zurückgibt, was alles andere als effizient ist.
Wir freuen uns über Ihre Kommentare.
Recommended Posts