создание папок с правильными разрешениями для загрузки в Django - PullRequest
2 голосов
/ 14 июля 2011

При загрузке файлов я устанавливаю upload_to для функции, которая создает путь, не существует, а Django создает дополнительные папки (с разрешениями, которые мне не нравятся).

Например,

def photo_upload_path(instance, filename):  
    return os.path.join('photos', str(instance.id), filename)

однако, разрешения для папки не то, что я хотел бы. Должен ли я создать папку и установить разрешения? Или есть настройка для этого?

Я нашел сообщение для управления разрешениями для загружаемых файлов ( django / разрешения на загрузку файлов ), но не для созданных каталогов.

Спасибо за любую помощь!

Ответы [ 2 ]

3 голосов
/ 16 мая 2014

Вы можете изменить разрешение каталога по умолчанию в вашем файле настроек.Это доступно после Django 1.7 и полностью описано в документации Django .Обратите внимание, что это повлияет на все каталоги, созданные Django, включая staticfiles, поэтому используйте их с осторожностью.

FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755

Измените пример кода, чтобы использовать желаемое разрешение.Я не использовал запрошенное вами разрешение (0o777) в моем примере кода, если кто-то копирует без чтения.

0 голосов
/ 14 июля 2011

так что в итоге я нашел решение для разрешений.

Я использовал apache, поэтому я считаю, что это не было на 100% проблемой django.

Если я отредактирую /etc/apache2/envvars и добавлю строку, такую ​​как umask u=rwx,g=rwx,o=rwx, он устанавливает права по умолчанию

...