職場でファイル共有についてちと相談を受けました。基本的にオフィス内の人のファイル共有なのですが、社外の人も少々アクセスしたい用件があると。また、全員が全員技術屋というわけでもないので、できれば日本語ファイル名を許容したりと「緩い」運用ができること。ターゲットは基本的にWindowsで、という感じ。
それからしばらく色々な検討をしてみたのですが、WebDAVは色々と厄介だし、オフィス内のアクセスが中心ならば不向きと判断。Samba でファイル共有しつつ、同じサーバで apache 立てて、Webベースのアクセスができるようにリダイレクトかけるのがいいかなーっと感じ、Webベースのファイル共有ツールとかを色々試してたのですが、「日本語ファイル名」がかなり厳しい。
いい加減あきらめようかと考えていたところで見つけたのが smbwebclient.php 。これ、バックエンドに Samba を使って、Web経由でのアクセスを全部そっちにパスするーすると言うシンプルな仕組み。設置も簡単で、かつバックエンドの Samba さえ適切に設定しておけば日本語ファイル名もOK。さらに、メッセージは多言語対応、日本語メッセージもあると至れり尽くせりでした。
これを HTTPS な Web サイトに突っ込んで、Basic認証をきちっとかけた上で運用してみましたがかなりいい感じです。
ただ、なぜか最初1度は英語メニューになり、それを日本語に直すのだけが玉に瑕。スクリプトの説明には、どうもどの言語を使うかは自動認識するみたいなのですが...。
気になったので調査。原因は、Accepted-Language ヘッダの解釈がちょっとまずくて、優先度の指定とか無視して、ヘッダで最後に指定された言語を選択してしまうというものでした。
添付ファイルはそれを直すパッチです。あててから数ヶ月近く運用してますが、どこからも文句がこないので問題ないと判断し、公開します。
一応作者にも送りました。
smbwebclient-acceptlanguage.patch.gz