Разрешения на файл в Docker-контейнере - PullRequest
0 голосов
/ 22 апреля 2019

Я сталкиваюсь с очень странной проблемой при загрузке файлов в каталог моего приложения с помощью веб-форм.

Хотя все, что касается бэкэнда, кажется, работает очень хорошо, при загрузке файлов с определенными расширениями (например, .apk) разрешения устанавливаются таким образом, чтобы только root имел доступ для чтения к этим файлам. , когда другие типы файлов (например, изображения) обычно доступны. Я не знаю, были ли расширения или большой размер (около 15 МБ по сравнению с КБ), но похоже, что происходит какая-то фильтрация на фоне

Обновление

Еще немного информации об окружающей среде

  • nginx контейнер, используемый для прокси на сервере django (gunicorn)
  • Развертывание ОС - Ubuntu 16.04
  • Веб-приложение представляет собой проект Django 2.2
  • Кажется, проблема связана с размером файла, а не с расширением
  • Похоже, что Django перемещает файл из каталога /tmp в каталог /media после завершения загрузки

1 Ответ

0 голосов
/ 22 апреля 2019

Наконец, я смог найти обходной путь с помощью @jsbeckr.

Через по этой ссылке Я узнал о некоторой удобной конфигурации для использованиятак как я не смог сменить пользователя на котором docker-compose работает поверх

# For files
FILE_UPLOAD_PERMISSIONS = 0o644 #or whatever fits to your needs
# For directories
FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o644
# If you need to switch it from /temp
FILE_UPLOAD_TEMP_DIR = /path/to/dir
...