@frilix
Иногда "творю"

Django. Права на файл после записи?

Добрый день! Есть продакшен сервер с Django.

UWSGI настройки такого плана:
[uwsgi]
project = posudahome
uid = dikiigr
gid = www-data
...


Используется в связке с nginx, а мой пользователь dikiigr добавлен в группу www-data.

В Django есть модель, которая занимается синхронизацией файлов xls формата. Так вот, если грузить собственно этот файл, то я получаю права такого типа:

-rw------- 1 dikiigr www-data 10573824 Aug 14 12:11 7947dc95-d4a4-4903-80e4-759e6a7c1ed7.xls


В то время, если грузить изображения в эту же модель, то права другие:

-rw-r--r-- 1 dikiigr www-data    35480 Aug 14 12:24 612b8260-63dc-45bd-9bd8-41b73c673e2f.jpg


Не могу понять в чем проблема и как мне дать права моей группе www-data при загрузке, для чтения хотябы. И почему такое странное поведение у Django или я что-то упустил?

P.S Видел решение с os.chmod(path, mode), но это плохой вариант так как требует лишних телодвижений
  • Вопрос задан
  • 406 просмотров
Решения вопроса 1
@frilix Автор вопроса
Иногда "творю"
Погуглив узнал, что у django есть параметр отвечающий за права.

Решение:

FILE_UPLOAD_PERMISSIONS = 0o644


If this isn’t given or is None, you’ll get operating-system dependent behavior. On most platforms, temporary files will have a mode of 0o600, and files saved from memory will be saved using the system’s standard umask.


Что означает, что это зависит от платформы и нужно принудительно задавать эту маску, чтоб не было взято по умолчанию
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы