VFSを実装するためのアイデア
-
05-07-2019 - |
質問
マルチメディアファイルとそのメタデータをRDBMSに保存しています(実際には、実際のメディアファイルはFSに保存されていますが、これについては詳しく説明しません)。
この情報のファイルシステムビューを表示して、ユーザーがデータベースの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)
" expose"に代わる最良の選択肢は何ですか?このモデル?私が見るように、いくつかの選択肢があります:
- Java用のヒューズとJava用のDokan。 2つの異なるラッパーを実装する必要があるため、もう少し作業が必要です...
- AlfrescoのSMB実装を使用し、VFSをSamba共有として公開する
- ミルトン(サーブレットコンテナのWebDAV実装)を使用し、OSの組み込みWebDAVサポートを使用するか、Fuse DAV FSなどを使用してFSとして再公開します
そのうち、Fuse / Dokanが最も機能しているようです。 Alfrescoは非常に素晴らしく見えますが、動作させるには非常に複雑です。ミルトンはよりシンプルに見え、WebDAVのセマンティクスはさらによく機能するかもしれません...しかし、私は完全にはわかりません。
思考、アイデア?
アレックス
編集:プロジェクトは現在半ば放棄されています(つまり、それを行うのはクールですが、今は時間がありません)。 commons-vfsの拡張機能としてVFSを記述し、commons-vfsをMilton、Dokan、Fuseなどに適応させると思います。
解決
WebDAVを使用します。 多く少ないコードと明確に定義された標準