Pergunta

Eu escrevi uma aplicação Django, mas eu tenho um pequeno problema com as permissões de arquivo dos arquivos envios de um formulário web.

Basicamente eu posso fazer upload de um arquivo .mp3 mas sempre manter chmod 600.

A pasta recipiente tem chmod 775, eo umask está definido para 022.

Eu estou em um serviço de hospedagem compartilhada.

Foi útil?

Solução

Tente isto em seu settings.py se você usar Python 2:

FILE_UPLOAD_PERMISSIONS = 0644

Em Python 3 números octais deve começar com 0o para que a linha seria:

FILE_UPLOAD_PERMISSIONS = 0o644

Para mais detalhes consulte a documentação .

Outras dicas

Hope isso é útil. O método a seguir pode ser usado. Isso tem 2 outros que não resolver erros de permissão vantagens.

  • Não há problemas com permissões de arquivo
  • Mais rápido
  • O arquivo não é copiado para / tmp / pasta para arquivos que são mais de 2,5 MB (economia de espaço também).

with open(file_name, 'wb+') as temp_file:
    for chunk in up_file.chunks():
        temp_file.write(chunk)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top