Django/разрешения на загрузку файлов
Я написал приложение django, но у меня возникла небольшая проблема с правами доступа к файлам для загрузки файлов из веб-формы.
В основном я могу загрузить файл .mp3, но он всегда сохраняет chmod 600.
Папка контейнера имеет chmod 775, а значение umask установлено в 022.
Я в сервисе общего хостинга.
Ответы
Ответ 1
Попробуйте это в файле settings.py, если вы используете Python 2:
FILE_UPLOAD_PERMISSIONS = 0644
В Python 3 восьмеричные числа должны начинаться с 0o, поэтому строка будет выглядеть так:
FILE_UPLOAD_PERMISSIONS = 0o644
Подробнее... см. документацию.
Ответ 2
Надеюсь, это полезно. Метод ниже может быть использован. Это имеет 2 других преимущества, помимо устранения ошибок разрешения.
- Нет проблем с правами доступа к файлам
- Еще быстрее
- Файл не копируется в папку/tmp/для файлов, размер которых превышает 2,5 МБ (также экономя место).
with open(file_name, 'wb+') as temp_file:
for chunk in up_file.chunks():
temp_file.write(chunk)