移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
WindowsのwebDAVクライアント ネットワークプレースの難点
webDAVをネットワークプレース機能で利用すると、ローカルとおんなじ操作感で使えてすごく便利です。
webDAVだからゆえの文字コードの問題とか、ネットワークプレース機能のバグなどもあり、ApacheのWebDAVモジュールを最初に設計した人からも、Apacheサーバに対してWindowsXPのネットワークプレースを使うことは推奨されてないとかも。

詳細はこのあたりを参照

でも同じマイクロソフト製であるIISと合わせて使えばそれなりに便利に使えます。

しかし、やはり他にも難点はあります。

webDAVをネットワークプレース機能で利用していると、ファイルの転送のためにキャッシュを作成します。
キャッシュのディレクトリは、デフォルトならば以下のとおり。

C:\Documents and Settings\LocalService\Local Settings\Temporary Internet Files\Content.IE5


このキャッシュですが、ほっとくとどんどん溜まっていきます。
ちゃんと期間を決めたりしてないですが、日常的に使っていてキャッシュがそろそろ6GB弱にまでなっています。
ファイルを受け取る時なら分からないでもないですが、ファイルをサーバに送信する時もなぜかキャッシュを作成します。
キャッシュと入っても、移動やコピーするファイルをコピーしただけのファイルなので、大きいものの場合そのファイル分がまるまる消費されます。
キャッシュの保存容量に上限があるかどうかなど、まだ分かりませんが、HDDの残り容量が厳しいときなどは、これが原因でうまく転送できなかったりします。

webDAVサーバに、クライアントから大き目のファイルを退避させて、クライアントマシンのHDD容量を確保しようとしていたので、データを退避させてもさせてもHDD容量が増えずでした。
もちろん、退避させたデータがそっくりそのままキャッシュされていたからです。

とはいえ、このキャッシュ機能も無いと困ることもあるようなのでなんともいえません。
以下のようなバグもあるため、キャッシュされていないとデータを失うこともありえるようです。

WebDAV サーバーへのファイルサイズが大きいファイルの移動またはコピーに失敗する
スポンサーサイト
別窓 | 未分類 | コメント:0 | トラックバック:0
200703060252
webDAVまとめ
webDAVはHTTPを拡張して策定され、FTPの後継としてPCやサーバ間でのファイル転送が行えるシステム。
実際には単にFTPの代わりのファイル転送ではなく、もっと深い役割があるようだけど。

WebDAV(Web-based Distributed Authoring and Versioning)はウェブを使った分散オーサリングとバージョン管理のプロトコルである。



Wikipediaによると一言で上記らしいが、とりあえずの用途としてFTPの代わりとして使いたいと思った。
FTPはなんとなく古いし、使いやすくてかっこいいクライアントソフトもないしで、どうも好きになれず。
ただ新しいということでかっこよさを秘めているwebDAVに興味がわきわきしたというわけです。

webDAVの現状大きな問題点といえば、日本語やその他マルチバイト言語を扱う場合、文字コードが指定できないらしい点。
HTTPはヘッダーに文字コードを書いて送信できるが、webDAVにはそういう仕様になっていないらしい。
これはちょっと聞きかじっただけで調べてもいないけど、実際に現状の実装では日本語の扱いが問題になっている。

今のところの使えそうなwebDAVサーバ

・Apache + mod_webDAV
・lighttpd + mod_webDAV
・IIS
・04WebServer

まずwebサーバの代表であるApache、そしてlighttpdはおそらく一緒くたにしてもかまわないと思うが、基本的にはLinux上にサーバを設置することが多いと思う。
その場合、Windowsクライアントから利用すると文字コードが違い文字化けしてしまう。
それを回避するため、WebDAV Resources JPの有志の方が作ったらしいmod_encodingを使うが、ここを見ると対応バージョンも多くは無くつぎはぎ的な印象を受ける。
lighttpdもmod_encodingが使えるらしいが上記サイトでは配布されていないようだ。もしかしたらapache用のものが使えるのかもしれないが、その辺は不明。

一応、Apache2 + mod_webDAV + mod_encoding + Linuxはそれなりに実績があるようだが、Windows上にサーバを設置する場合はどうなるだろうか。
残念ながらweb上にはそういったドキュメントは見当たらなかった。

Windows上にwebDAVサーバを設置する場合、IISか04WebServerのどちらかが良さそう。
IISはマイクロソフト製で、流石にIISとwindowsクライアント間の通信で文字化けといったトラブルは発生しなかった。
逆にIISとLinuxクライアント間はどうなるかが心配ではある。

04WebServerはいわゆるフリーウェア(今はGPLにてオープンソース化している)のサーバソフトウェアで知名度はほとんど無いが、WindowsでwebDAVサーバについて調べていると、たまに名前を見ることがある。
これも04WebServerとLinuxクライアント間で問題が無いかは未知数だが、少なくともWindowsクライアントとのやり取りは書き込み等を見る限り出来そう。

lighttpdは最近RoRの影響で知名度が上がっている、名前のとおり軽量なwebサーバらしいが、WindowsにインストールするにはCygwinを使う必要がある。
Cygwinは使いこなせば便利だけど、どうもひとつのアプリケーションだけのためにとりあえず入れるにはちょっと重たい。
後々困ったことにもなりそうだし。

と思ったら、公式ではないがCygwinなしで(cygwin.dllは同梱しているが)動作するlighttpdのバイナリを配布しているところがあった。
mod_webDAV用のDLLも付属していたのでこれはと思ったが、文字化けが発生してしまった。
このWindows用lighttpdの場合、モジュールはすべてDLLとして提供されているので、通常の.soファイルでは組み込めない。
そのためmod_encoding.soも適用出来ないことになる。

クライアントのほうに目を向けると、WindowsXPでは標準でwebDAVクライアント機能が搭載されている。
ネットワークプレースという機能で、webDAV以外にもFTPなどをUIとしてはローカルにアクセスしているのと同じように使えるという、目指すもの自体はすばらしい機能。

昼間のメモ WindowsのWebDAVクライアントからの文字コードについてによると、このネットワークプレース機能が扱う文字コードはバージョンによって異なるという。
webDAVがまだ新しい仕組みなので仕方が無いのかもしれないが、これもまた混乱の1つの原因になってそう。

大きく分けて3パターンあるようだ。

・MS932のMBCS形式。ただし一部記号はURLEncodingされる。
・UTF-8のMBCS形式。ただし一部記号はURLEncodingされる。
・UTF-8のURLEncoding形式。

バージョンの新しいほうは、UTF-8のURLEncoding形式になっているので、これに落ち着くんじゃないかな~と思うが胴なんだろうか。

前述のmod_encodeingの設定も、ネットワークプレース機能のバージョンを見て、それぞれ適切な設定を行う必要がある。
ちなみにmod_encodingのサーバ側文字コードはUTF-8固定となっている。
であれば、Apache2 + mod_webDAV + mod_encodingな構成でwebDAVサーバを設置した場合、mod_encodingを通すことでApacheはすべてUTF-8で受け取っていることになる。
もしかしたらApache2 + mod_webDAVなwebDAVサーバと、UTF-8のURLEncoding形式をとるネットワークプレース機能の間のやり取りなら、mod_encoding不要なんじゃないだろうか。
Windows・Linuxどちらに設置してもUTF-8で扱うんだから、そういうことになりそうなんだけど。

今度時間をみつけて、Apache2 + mod_webDAV + Windowsをやってみたいと思う。
別窓 | 未分類 | コメント:1 | トラックバック:0
200703052200
| プログラマのチラシの裏 |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。