Идеи для реализации VFS - PullRequest
       21

Идеи для реализации VFS

4 голосов
/ 27 ноября 2009

У меня есть мультимедийные файлы и их метаданные, хранящиеся в РСУБД (собственно, реальные медиа-файлы хранятся в ФС, но не будем на этом останавливаться).

Я хотел бы представить представление этой информации в файловой системе, чтобы пользователи могли работать с помощью проводника 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 и т. Д.

1 Ответ

2 голосов
/ 27 ноября 2009

Я бы пошел с WebDAV. лот меньше кода и четко определенные стандарты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...