[PYTHON] Servieren Sie statische Dateien mit X-Send File

Informationsfrische

Hintergrund- und mod_auth_tkt-Probleme

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/

Bonus

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.

Schließlich

Wir freuen uns über Ihre Kommentare.

Recommended Posts

Servieren Sie statische Dateien mit X-Send File
Laden Sie Dateien mit Django hoch
Datei-Upload mit Django
Zeichnen Sie eine netCDF-Datei mit Python
Schnelle Dateiübertragung mit Stoff
Sortieren von Bilddateien mit Python (2)
Sortieren Sie große Dateien mit Python
Sortieren von Bilddateien mit Python (3)
Bilddateien mit Python sortieren
Bidirektionale Dateiübertragung in Pythonista 3
Dateien mit teraterm übertragen [Hinweis]
Integrieren Sie PDF-Dateien in Python
TXT-Dateien mit Python lesen
Informationen zum Umgang mit statischen Django-Dateien
Datei-Upload mit Flask + jQuery
Arbeiten mit JSON-Dateien in Matlab
Laden Sie die CSV-Datei mit Python herunter
Erstellen Sie eine Xlsx-Datei mit XlsxWriter