[PYTHON] django + nginx Comment faire en sorte que seuls les utilisateurs connectés voient les images

Lors de la combinaison de django et nginx La méthode consiste à extraire des fichiers statiques tels que des images avec collectstatic et à les placer dans nginx.

Cependant, si vous le placez dans ** nginx, vous pouvez voir les fichiers statiques sans vous connecter au système **, donc Il s'agit d'une méthode qui peut être utilisée avec l'exigence de ** fournir des images que vous souhaitez limiter aux utilisateurs connectés **.

supposition

nginx → uwsgi → django Avec cette configuration, vous pouvez accéder à django depuis nginx.

Méthode

Comment créer une vue pour une URL d'image dans django. Puisqu'il passe par la vue de django, il n'est pas accessible sans se connecter au système.

organisation des fichiers

projectroot
  + projectname
    + settings.py
  + media
    + pictures
      + test.jpg
  + testapp
    + urls.py
    + views.py

Définissez une vue pour accéder aux fichiers dans les médias dans une application dans django appelée testapp.

Code source

settings.py


MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

views.py


from django.http import HttpResponse
import os
from projectname import settings


def picture(request, imgfilename):
    file_path = os.path.join(settings.MEDIA_ROOT , 'pictures/' + imgfilename)

    with open(file_path, "rb") as f:  #rb signifie lecture binaire
        imgfile = f.read()
    return HttpResponse(imgfile , content_type="image/jpeg")

urls.py


urlpatterns = [
    path('media/<imgfilename>', views.picture, name='picture'),
]

accès

http://localhost:ポート/testapp/media/test.jpg

Recommended Posts

django + nginx Comment faire en sorte que seuls les utilisateurs connectés voient les images
Comment enregistrer une seule donnée sur l'écran de gestion de Django
Un mémorandum pour faire WebDAV uniquement avec nginx
[Django] Comment obtenir des données en spécifiant SQL.
Inspiré par "Comment créer du JavaScript purement fonctionnel"
[Suite] Inspiré par "Comment créer du JavaScript purement fonctionnel"
Comment utiliser Decorator dans Django et comment le créer
[Django] Comment rediriger les utilisateurs non connectés vers la page de connexion
Django Faites des choix uniquement pour l'établissement auquel vous appartenez
Comment faire une traduction japonais-anglais
[Django] Comment tester le formulaire [TDD]
Comment créer un bot slack
Comment créer un robot - Avancé
Comment créer une fonction récursive
Comment refléter CSS dans Django
Comment démarrer avec Django
[Blender] Comment créer un plug-in Blender
[Blender] Comment rendre les scripts Blender multilingues
Comment écrire un fichier wsgi.py indépendant de l'environnement Django1.9
Comment créer un robot - Basic
Comment se connecter à Docker + NGINX
Comment faire exécuter un thread de processus uniquement sur un cœur de processeur spécifique
[Rails] Comment détecter des images radicales en analysant des images à l'aide de l'API Cloud Vision