vfs_catia — Catiaファイルシステムで無効な文字を変換する
vfs objects = catia
このVFSモジュールは samba(7)システムの一部である.
Catia CADパッケージはCIFSファイルシステムで使用できない文字を使用して
ファイルを作成する。
vfs_catia
VFS モジュールはCIFSクライアントが共有可能になるように
文字マッピングを行う。
このモジュールはスタック可能である。
パラメータ "catia:mappings" は以下で説明するように、文字単位の マッピングを指定する。
SERVER_HEX_CHARは、Sambaのサーバ側にあるファイル名中に 含まれている、0xという接頭辞が付いた16進文字コードで、 CIFSクライアントに対してCLIENT_HEX_CHARにマップされる。
同じマッピングは、反対方向でも起きる。複数の文字 マッピングはカンマによって分離される。
[CAD]共有中のファイルにある、サーバサイドの引用符(")を クライアントサイドのdiaeresis文字(¨)にマップする:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x22:0xa8
共通的なCatiaファイル名マッピングの包括的な実行:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
変換されるサーバサイドのファイル名(パスの区切り "/" はここでは使われていない事に注意):
a\a:a*a?a"a<a>a|a
結果としてクライアントで表示されるファイル名:
aÿa÷a¤a¿a¨a«a»a¦a
一意と存在するファイル名を得るため、文字列のマッピングは双方向で動く 必要がある(サーバ -> クライアント と クライアント -> サーバ)。
動かない例:
[CAD]
path = /data/cad
vfs objects = catia
catia:mappings = 0x3a:0x5f
ここで、コロン ":" は、下線 "_" にマップされる
サーバ側の のファイル名 "a:should_work" を考えると、これは、 "a_should_work" という クライアント用のファイル名に問題なく変換される。
しかし、クライアントの、"a_should_work" というファイル名をサーバ向けに、 逆方向マッピングしようとすると、結果が、"a:should:work" となってしまい、たとえば "file not found" が返ってくることになる。