Разрешение на запись nginx gunicorn
В моем коде django/python есть следующие строки:
f = open(os.path.join(DIRECTORY, filname), 'w')
f.write(filecontent)
f.close()
когда у меня DIRECTORY='/tmp/'
все работает нормально, файл.txt сохраняется с помощью owner=root
и group=www-data
. Однако, когда я хочу сохранить файл в подкаталоге моего django-проекта, например, DIRECTORY='/project/subfolder'
файл не появляется, хотя у меня эта подпапка установлена на того же владельца/группу.
Я подозреваю, что это проблема с разрешениями в nginx или gunicorn. Есть предложения?
Я попытался решить свою проблему, просто смонтировав каталог /tmp/
в контейнер docker, в котором я потом использую файл. Но я столкнулся с проблемой, что файлы в директории /tmp/
не появляются в docker, в то время как при монтировании другой папки, например /project/subfolder/
, эти файлы появляются в docker. Так что в любом случае половина работает, но никогда обе.
Проверяли ли вы, какие разрешения имеет ваша вложенная папка?
Я также попробовал сохранить некоторые файлы в подкаталоге проекта. Например, у меня была подпапка "log" в папке проекта, и мне пришлось изменить права доступа, используя:
chown -R www-data:www-data /var/www/test/myproject/log