Ceci est une continuation. http://qiita.com/amedama/items/3f2197cadc1ea7d6374e
X-SendFile
Et c'est X-Send File.
Si cela est inclus dans l'en-tête Response, le serveur Web sous l'application WSGI, c'est-à-dire Apache cette fois, Avant de renvoyer une réponse à l'utilisateur, il étend le chemin et commence à envoyer le fichier à l'utilisateur. Il y a plus d'articles sur nginx, mais si vous mettez un module dans un autre, cela fonctionnera avec Apache.
L'évaluation de la performance est ...
Probablement pas si la base de données contient des fichiers.
http://stackoverflow.com/questions/7296642/django-understanding-x-sendfile
Pour Apache2 pour Debian / Ubuntu, entrez libapache2-mod-xsendfile.
# 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
Dans le cas ci-dessus
Sur les paramètres Apache
XSendFile on
XSendFilePath /opt/yourproject/downloads
Si vous le faites, / opt / yourproject / downloads sera ajouté à la liste blanche. Inversement, si vous indiquez le mauvais chemin, rien ne sera envoyé.
Référence: https://tn123.org/mod_xsendfile/
django-sendfile (https://github.com/johnsensible/django-sendfile)
La première chose qui apparaît dans le résultat google de "django X-SendFile" est une mine. Il s'agit d'une implémentation qui lit un fichier sur django, le développe et le renvoie en tant que contenu, ce qui est loin d'être efficace.
Nous apprécions vos commentaires.
Recommended Posts