vfs_catia — Catia ファイル名で無効な文字を変換
vfs objects = catia
この VFS モジュールは samba(7) システムの一部である。
Catia CAD パッケージは、 CIFS ファイルシステムで使用できない文字を
使用したファイル名を頻繁に作成する。
vfs_catia
VFS モジュールは、これを CIFS
クライアントからアクセスできるように文字マッピングを行う。
このモジュールはスタック可能である。
catia:mappings パラメーターは、以下で説明するように、文字単位の マッピングを指定する。
SERVER_HEX_CHAR は、 0x というプレフィックスを付加した 16 進数の 文字コードであり、これが Samba サーバー上のファイル名に含まれている 場合、 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 といたエラーが返却されてしまうことになる。