Хранение файлов в файловой системе при наличии нескольких экземпляров сервера
У меня есть несколько экземпляров сервера Django, обработанных балансировщиком нагрузки. Когда мне нужно увеличить масштаб, я реплицирую клон сервера и добавляю новый экземпляр сервера в балансировщик нагрузки.
Я также использую интерфейс администратора для загрузки файлов конфигурации, которые хранятся локально с использованием FileFields. Это поднимает проблему, потому что экземпляры сервера становятся с состоянием и не все совместно используют одни и те же файлы.
Вот что я спрашиваю:
- Как правильно хранить файлы, к которым необходимо получить доступ с нескольких серверов?
- Хранение файлов в БД - хорошая идея?
- Возможно загрузить на S3?
1 ответ
Существует несколько вариантов, наиболее широко используемый подход заключается в использовании одной из сетевых файловых систем, таких как:
Если вы хотите использовать Amazon S3 для хранения ваших файлов, взгляните на проект RioFS, он позволяет вам монтировать удаленную корзину S3 как локальную папку на ваших серверах.