Служите мультимедийным файлам с бэкэндом S3 и пользовательскими разрешениями - PullRequest
0 голосов
/ 02 сентября 2018

Я удивлен, но я не смог найти никого с такими же требованиями в Google, так что здесь я иду. Я разрабатываю проект Django, и я знаю, что конфиденциальные документы будут загружаться пользователями, поэтому мне нужно ввести какой-то механизм контроля разрешений (сейчас я думаю об использовании JWT).

Чтобы сделать мой проект без сохранения состояния с операционной точки зрения (планируя запустить его в контейнерах), я бы хотел хранить свои загруженные пользователем файлы в распределенной системе хранения объектов (S3 / minio).

Здесь я заблудился. Я знаю, что в «обычной» производственной среде Django загруженные пользователем медиа-файлы, как правило, попадают в папку ./media, и веб-сервер обслуживает ее непосредственно оттуда, без какой-либо аутентификации. На мой взгляд, это рискованно и неприемлемо, потому что общие прямые ссылки могут быть прослушаны / утечки, а неавторизованные люди могут получить доступ к конфиденциальным документам.

Завершение :

  • Какова практика хранения / обслуживания загруженного пользователем содержимого в / из S3 / minio?
  • Как мне контролировать доступ к этим файлам?

Спасибо!

1 Ответ

0 голосов
/ 02 сентября 2018

Я думаю, что вы ошиблись в своих поисковых запросах, потому что не знали, что искать, это Django Storage * :

Если вам необходимо предоставить пользовательское хранилище файлов - типичный пример - хранение файлов в некоторой удаленной системе - вы можете сделать это, определив пользовательский класс хранения.

Конечно, это уже сделано для вас :

django-хранилища - это набор пользовательских хранилищ для Django.

  • Amazon S3
  • Apache Libcloud
  • хранилище Azure
  • Цифровой Океан
  • DropBox
  • FTP
  • Google Cloud Storage SFTP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...