2017-12-05 2 views
0

So habe ich Angular + Django REST API auf nginx + gunicorn Setup-gehosteten Anwendungen.
Ich stehe vor einem seltsamen Problem. Ich habe meine Medienordner permisssions auf 777 und in meinem nginx config:Django zu den öffentlichen Medien-Ordner zu speichern, Fehler 403

location /media { 
    alias /home/shalin95/zona_project/zona_api/media; 
    expires 20m; 
} 

Ich habe ein Modell Product mit main_picture Feld (ImageField die Dateien auf /media/photos/ speichern). Wenn ich neue Instanz erstellen (neues Produkt), und manchmal, wenn ich das Bild im Browser öffnen möchte, bekomme ich 403 Forbidden Fehler.

HINWEIS: gelegentlich Dies geschieht nicht auf jedem Fall gespeichert (kein spezifisches Muster, nur zufällig)

dankt, wenn ich gehe und chmod -R 777 die Medienordner alles in Ordnung ist (i das Bild sehen), aber warum diese passiert (manchmal)?

+0

Sollten Sie 'root' anstelle von' alias' verwenden? Versuchen Sie Folgendes: 'root/home/shalin95/zona_project/zona_api' –

+0

Ist das wirklich das Problem zu lösen? Ich habe den Unterschied gesehen 'alias' vs' root' https://innopy.wordpress.com/2016/01/18/nginx-static-file-serving-confusion-with-root-alias/, hat dies irgendwelche Wert hier? – lcadc17

+0

Hat Ngnix einen separaten Benutzer? Kannst du für Nginix (Benutzer) auf diesem Verzeichnis acl machen? Dann machen Sie acl Standard, so dass jedes Mal, wenn eine neue Datei erstellt wird, ngnix darauf zugreifen kann. Und was ist deine Distro? –

Antwort

0

also habe ich festgestellt, dass dieses Problem tritt nur auf nur, wenn die Anforderung war größer als (~ 4 MB) denke ich, so ich habe

FILE_UPLOAD_MAX_MEMORY_SIZE = 100000000 
FILE_UPLOAD_PERMISSIONS = 0o644 

in der settings.py Datei und jetzt die Uploads arbeiten in Ordnung hinzugefügt .