Веб-приложение Java, которое я разрабатываю, позволяет пользователям загружать файлы (изображения и документы) в свои профили и определять правила доступа к этим файлам (определить, кто из других пользователей может просматривать / загружать файл). Система контроля доступа / разрешения сделана на заказ, а правила хранятся в mongoDB вместе с профилем пользователя и фактической записью файла.
Зная, что мне нужно, чтобы приложение и хранилище были распределенными и отказоустойчивыми, я должен выяснить, какая стратегия лучше всего подходит для хранения файлов.
Стоит ли хранить файлы внутри mongoDB в коллекции файлов, в которой находится документ с описанием и правилами доступа?
Или я должен хранить файлы в файловой системе сервера и сохранять путь в документе mongoDB? С подходом файловой системы я все еще буду в состоянии обеспечить определенные пользователем права доступа и как?
Наконец, в подходе файловой системы, как я могу распространять файлы по серверам? Должен ли я использовать выделенные серверы для этого или я могу хранить файлы на серверах веб-приложений или серверах mongodb?
Большое спасибо за ваши идеи! Любая помощь или отзывы приветствуются.
Alex