У меня есть мультимедийные файлы и их метаданные, хранящиеся в РСУБД (собственно, реальные медиа-файлы хранятся в ФС, но не будем на этом останавливаться).
Я хотел бы представить представление этой информации в файловой системе, чтобы пользователи могли работать с помощью проводника Windows и подобных объектов в базе данных. Я предполагаю, что этот доступ будет только для чтения, что, я считаю, значительно упростит ситуацию.
По сути, я хочу достичь:
- иметь разные представления с использованием разных критериев метаданных (например, иметь / by_author / {artist} / {record} / {audiofiles} и / by_record / {record} / {audiofiles}, например).
- Прозрачное перекодирование (возможно, кэширование) медиа-файлов (т.е. / wav / {wavfile}, / mp3 / 192 / {mp3file), / mp3 / 320 / {mp3file} и т. Д.)
- Прозрачная генерация метаданных в разных форматах (скажем, Excel, XML в разных схемах и т. Д.)
Я делаю это на Java, кстати.
Мои проблемы здесь двусторонние:
1)
Какой хороший способ реализовать «модель»? Я пробовал использовать некоторые интерфейсы и реализации Repository, Asset, FileAsset, ContainerAsset, но в итоге они не чувствуют себя совершенно правильно.
Меня интересует возможность делегировать разные части файловой системы в отдельный код (т. Е. Части FS / / artist} / {record} и / {record} реализованы с различным кодом, и они оба делегируют тот же код для создания материала {record} / xxx).
2)
Какая лучшая альтернатива "выставить" эту модель? Как я вижу, есть несколько альтернатив:
- Предохранитель для Java и Dokan для Java. Мне нужно было бы реализовать две разные оболочки, так что это немного больше работы ...
- Используйте реализацию Alfresco SMB и просто предоставьте VFS в качестве общего ресурса Samba
- Используйте Milton (реализация WebDAV для контейнеров сервлетов) и либо используйте встроенную поддержку WebDAV в ОС, либо используйте что-то вроде Fuse DAV FS, чтобы повторно представить его как FS
Из них Fuse / Dokan кажутся наиболее эффективными. Alfresco выглядит очень красиво, но очень сложно, чтобы заставить его работать. Мильтон кажется проще, а семантика WebDAV может работать даже лучше ... но я не совсем уверен.
Мысли, идеи?
Alex
edit: Проект сейчас почти заброшен (это было бы круто, но сейчас нет времени). Я думаю, что я бы написал свою VFS как расширение для commons-vfs, а затем адаптировал commons-vfs к Milton, Dokan, Fuse и т. Д.