Вопрос

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

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

Меня интересует возможность делегировать различные части файловой системы в отдельный код (т.е.Части /{artist}/{record} и /{record} FS реализованы с использованием разного кода, и обе они делегируют один и тот же код для создания материала {record}/xxx).

2)

Какая лучшая альтернатива «разоблачению» этой модели?Как я вижу, есть несколько альтернатив:

  • Fuse для Java и Dokan для Java.Мне нужно будет реализовать две разные оболочки, так что это немного больше работы...
  • Используйте реализацию SMB Alfresco и просто выставьте VFS как общий ресурс Samba.
  • Используйте Milton (реализация WebDAV для контейнеров сервлетов) и либо используйте встроенную поддержку WebDAV в ОС, либо используйте что-то вроде Fuse DAV FS, чтобы повторно представить его как FS.

Из них Fuse/Dokan кажутся наиболее удачными.На свежем воздухе выглядит очень красиво, но очень сложно заставить его работать.Милтон кажется проще, а семантика WebDAV может работать даже лучше...но я не совсем уверен.

Мысли, идеи?

Алекс

редактировать:Сейчас проект полузаброшен (то есть было бы здорово этим заняться, но сейчас нет на это времени).Я думаю, что я бы написал свою VFS как расширение commons-vfs, а затем адаптировал commons-vfs к Milton, Dokan, Fuse и т. д.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top