1. Хранить в файловой система
полюсы: можно организовать доступ по webdav, ftp
минусы: сложность в отслеживании, где и что задействовано
2. Использовать репозиторий Apache Jackrabbit, из минусов только то
что не когда с этим не работал
3. Хранить тупо в базе, но здесь меня терзают сомнения.
У кого какие будут мысли?
А в чем сложность в отслеживании? в том, что к файловой системе имеют
доступ все кому не лень, не только через твое приложение?
Я бы, пожалуй, сделал так: сами файлы хранил в файловой системе, а в
базе описание: характеристики медиа-файлов, их описание, путь к ним в
файловой системе.
Т.о.
1. поиск и др работа с мета-информацией будет удобна, т.к. вся мета
информация хранится в базе,
2. сами файлы при необходимости легко вынести на другой сервер (чтобы
не нагружать этот сервер скачиванием файлов)
3. опять-таки возможен доступ по ftp.
в первом случае вообще никаких проблем с отслеживанием нет, так как
слой по работе с медиа контентом пишет, удаляет, читает в файловую
систему сам. естественно никто туда руками не лазит и ничего не
удаляет шаловливыми ручками.
во втором сервак эпизодически проверяет живость http серверов и
наличие файлов (появление новых и тд) - тут да, много гемору, но ведь
это не твой случай.
идея хранить гигабайты медиа контента в базе данных вызывает удивление
всегда, ибо тупому сервлету прочитать поток физического файла и
отдать поток в http/сокет/ftp/итд клиенту в разы быстрее, чем сначала
вытащить его из blob поля базы данных. (да я знаю про возможность
вытащить из базы данных напрямую и отдать пользователю потоком и тд,
но ВСЕ РАВНО база данных сделает больше работы, чем файловая система)