Domanda

Ho scritto un'app django, ma ho un piccolo problema con le autorizzazioni dei file caricati da un modulo web.

Fondamentalmente posso caricare un file .mp3 ma mantiene sempre chmod 600.

La cartella del contenitore ha chmod 775 e umask è impostato su 022.

Sono in un servizio di hosting condiviso.

È stato utile?

Soluzione

Prova questo in settings.py se usi Python 2:

FILE_UPLOAD_PERMISSIONS = 0644

In Python 3 i numeri ottali devono iniziare con 0o in modo che la riga sia:

FILE_UPLOAD_PERMISSIONS = 0o644

Per maggiori dettagli consultare la documentazione .

Altri suggerimenti

Spero che sia utile. È possibile utilizzare il metodo seguente. Ciò ha altri 2 vantaggi oltre alla risoluzione degli errori di autorizzazione.

  • Nessun problema con le autorizzazioni per i file
  • Più veloce
  • Il file non viene copiato nella cartella / tmp / per file che superano i 2,5 MB (risparmiando anche spazio).

with open(file_name, 'wb+') as temp_file:
    for chunk in up_file.chunks():
        temp_file.write(chunk)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top