すべての WebDAV クライアントは三つのどれかに分類されます— スタンドアロン・アプリケーション、ファイルエクスプローラ拡張、そして ファイルシステムの実装です。これらの分類はおおざっぱに言ってユーザに 対して提供できる WebDAV の機能の種類を決めます。 表 C.1. 「よく利用される WebDAV クライアント」 はその分類と、WebDAV が利用可能な ソフトウェアの共通部品の簡単な説明です。これらのソフトウェアが提供する機能の 詳細と一般的な分類についてはその後の節で見ることができます。
表 C.1. よく利用される WebDAV クライアント
ソフトウェア | 形式 | Windows | Mac | Linux | 説明 |
---|---|---|---|---|---|
Adobe Photoshop | スタンドアロン WebDAV アプリケーション | X | WebDAV URL を直接開いたり書き込んだりできる、画像編集ソフトウェア | ||
Cadaver | スタンドアロン WebDAV アプリケーション | X | X | コマンドライン WebDAV クライアントで、ファイル転送、ツリー、排他操作をサポートしています。 | |
DAV Explorer | スタンドアロン WebDAV アプリケーション | X | X | X | WebDAV 共有を閲覧する Java GUI ツールです。 |
Macromedia Dreamweaver | スタンドアロン WebDAV アプリケーション | X | WebDAV URL に対して、直接読み書き可能な Web 制作ソフトウェア | ||
Microsoft Office | スタンドアロン WebDAV アプリケーション | X | オフィスの生産性を高めるさまざまなコンポーネントからなる製品 で、WebDAV URL に対して直接読み書きすることが可能です。 | ||
Microsoft Web フォルダ | ファイルエクスプローラの WebDAV 拡張 | X | WebDAV 共有上のツリー操作を可能にする GUI のファイルエクスプローラ・プラグラムす。 | ||
GNOME Nautilus | ファイルエクスプローラの WebDAV 拡張 | X | WebDAV 共有をツリー操作可能な GUI のファイルエクスプローラ | ||
KDE Konqueror | ファイルエクスプローラの WebDAV 拡張 | X | WebDAV 共有をツリー操作可能な GUI のファイルエクスプローラ | ||
Mac OS X | WebDAV のファイルシステム実装 | X | WebDAV 共有をマウントする機能を、オペレーティングシステムに組み込みでサポートしています。 | ||
Novell NetDrive | WebDAV のファイルシステム実装 | X | Windows のドライブ識別文字をマウントされたリモート WebDAV 共有に 割り当てるための、ドライブマッピング・プログラムです。 | ||
SRT WebDrive | WebDAV のファイルシステム実装 | X | 機能の一部として、Windows のドライブ識別文字を マウントされたリモート WebDAV 共有に割り当てることも可能な、ファイル転送ソフトウェアです。 | ||
davfs2 | WebDAV のファイルシステム実装 | X | Linux ファイルシステムドライバで、WebDAV 共有をマウントできます。 |
WebDAV アプリケーションとは、WebDAV サーバと通信可能な WebDAV プロトコルの機能を組み込んだプログラムのことです。このような形での WebDAV を サポートしている、最も有名なプログラムのいくつかを紹介します。
Windows 上では Microsoft Office のような、WebDAV のクライアント機能を 統合した有名なアプリケーションがいくつかあります。 [63] Adobe の Photoshop と Macromedia の Dreamweaver 。 両方とも直接 URL を開いたり保存したりすることができますが ファイルを編集するさい WebDAV の排他制御を頻繁に利用する傾向が あります。
Mac OS X 上にも同じようなたくさんのプログラムが存在しますが、 それらのプログラム上では直接 WebDAV がサポートされているようには見えません。じっさい Mac OS X 上では、
ダイアログは パスや URL の入力がまったく許されてはいません。これらのプログラムの Macintosh バージョンでは WebDAV の機能はわざと実装されていない ように見えますが、それは OS X 自身がすでに WebDAV 用のすばらしい 低レベルファイルシステムを提供しているからです。Cadaver は、WebDAV 共有を閲覧したり変更したりする、生粋の Unix コマンドラインプログラムです。Subversion クライアントと同様、neon HTTP ライブラリを使用します — 驚くことはありません。neon と cadaver は同じ作者が書いています。Cadaver はフリーソフトウェア (GPL ライセンス) で、http://www.webdav.org/cadaver/ から取得できます。
Using cadaver is similar to using a commandline FTP program, and thus it's extremely useful for basic WebDAV debugging. It can be used to upload or download files in a pinch, and also to examine properties, and to copy, move, lock or unlock files:
$ cadaver http://host/repos dav:/repos/> ls Listing collection `/repos/': succeeded. Coll: > foobar 0 May 10 16:19 > playwright.el 2864 May 4 16:18 > proofbypoem.txt 1461 May 5 15:09 > westcoast.jpg 66737 May 5 15:09 dav:/repos/> put README Uploading README to `/repos/README': Progress: [=============================>] 100.0% of 357 bytes succeeded. dav:/repos/> get proofbypoem.txt Downloading `/repos/proofbypoem.txt' to proofbypoem.txt: Progress: [=============================>] 100.0% of 1461 bytes succeeded.
DAV Explorer is another standalone WebDAV client, written in Java. It's under a free Apache-like license and is available at http://www.ics.uci.edu/~webdav/. DAV Explorer does everything cadaver does, but has the advantages of being portable and being a more user-friendly GUI application. It's also one of the first clients to support the new WebDAV Access Control Protocol (RFC 3744).
Of course, DAV Explorer's ACL support is useless in this case, since mod_dav_svn doesn't support it. The fact that both Cadaver and DAV Explorer support some limited DeltaV commands isn't particularly useful either, since they don't allow MKACTIVITY
requests. But it's not relevant anyway; we're assuming all of these clients are operating against an autoversioning repository.
Some popular file explorer GUI programs support WebDAV extensions which allow a user to browse a DAV share as if it was just another directory on the local computer, and to perform basic tree editing operations on the items in that share. For example, Windows Explorer is able to browse a WebDAV server as a 「network place」. Users can drag files to and from the desktop, or can rename, copy, or delete files in the usual way. But because it's only a feature of the file-explorer, the DAV share isn't visible to ordinary applications. All DAV interaction must happen through the explorer interface.
Microsoft は WebDAV 仕様の元来の支援者の一つであり、Windows 98 で最初の クライアントを出荷し始めました。これは「Webfolders」と言う 名前で知られています。このクライアントはまた Windows NT4 と 2000 でも 出荷されました。
もともとの Webfolder クライアントはエクスプローラの拡張であり、これは ファイルシステムを閲覧する際の主要な GUI プログラムでした。これはとても うまく動作しています。Windows 98 では 「マイコンピュータ」 の中に Webfolder がない場合には明示的にインストールする必要がありました。 Windows 2000 では単に新しい 「ネットワークプレース」を追加 し、URL を入力すれば WebDAV 共有が閲覧用にポップアップします。
Windows XP のリリースで、Microsoft は Webfolder の新しい実装を出荷し 始めましたが、これは 「WebDAV mini-redirector」という名前で 知られています。新しい実装はファイルシステムレベルのクライアントであり WebDAV 共有をドライブ文字をつけてマウントできるようにしたものです。 残念なことにこの実装はかなりバグがあります。クライアントは通常 http URL (http://host/repos
) を UNC 共有記法 (¥¥host¥repos
)に変換しようとします; また Windows ドメイン認証を使ってHTTP 基本認証要求に応答しますが、このとき ユーザ名には HOST¥username
が利用されます。 このような協調動作の問題は深刻なもので、多くのユーザに対する不満を 解消するための数えきれないくらいのドキュメントがネット上に存在して います。Apache の WebDAV モジュールを最初に設計した Greg Stein で すら Apache サーバに対して XP Webfolder を利用することを推奨 していません。
最初の 「エクスプローラ機能のみの」 Webfolder の実装は XP でもなくなってはいませんが、埋もれてしまっています。以下のような 方法を使っていまでも探すことはできます:
'ネットワークプレース' を選択します。
新しいネットワークプレースを追加します。
プロンプトが出たらリポジトリの URL を入力しますが URL には ポート番号を含めます。例えば http://host/repos
は、かわりに http://host:80/repos
と指定します。
認証要求に正しく答えます。
There are a number of other rumored workarounds to the problems, but none of them seem to work on all versions and patchlevels of Windows XP. In our tests, only the previous algorithm seems to work consistently on every system. The general consensus of the WebDAV community is that you should avoid the new Web Folders implementation and use the old one instead, and that if you need a real filesystem-level client for Windows XP, then use a third-party program like WebDrive or NetDrive.
A final tip: if you're attempting to use XP Web Folders, make sure you have the absolute latest version from Microsoft. For example, Microsoft released a bug-fixed version in January 2005, available at http://support.microsoft.com/?kbid=892211. In particular, this release is known to fix a bug whereby browsing a DAV share shows an unexpected infinite recursion.
Nautilus は GNOME デスクトップ (http://www.gnome.org) の公式ファイルマネージャ/ブラウザで、Konqueror は KDE デスクトップ (http://www.kde.org) のファイルマネージ/ブラウザです。どちらのアプリケーションも、エクスプローラレベルの WebDAV クライアントを内蔵しており、自動バージョン化されたリポジトリに対してもうまく動作します。
GNOME の Nautilus の場合、
で を選択し、URL を入力します。これでリポジトリは他のファイルシステムと同じように見えるはずです。In KDE's Konqueror, you need to use the webdav://
scheme when entering the URL in the location bar. If you enter an http://
URL, Konqueror will behave like an ordinary web browser. You'll likely see the generic HTML directory listing produced by mod_dav_svn. By entering webdav://host/repos
instead of http://host/repos
, Konqueror becomes a WebDAV client and displays the repository as a filesystem.
The WebDAV filesystem implementation is arguably the best sort of WebDAV client. It's implemented as a low-level filesystem module, typically within the operating system's kernel. This means that the DAV share is mounted like any other network filesystem, similar to mounting an NFS share on Unix, or attaching an SMB share as drive letter in Windows. As a result, this sort of client provides completely transparent read/write WebDAV access to all programs. Applications aren't even aware that WebDAV requests are happening.
Both WebDrive and NetDrive are excellent commercial products which allow a WebDAV share to be attached as drive letters in Windows. We've had nothing but success with these products. At the time of writing, WebDrive can be purchased from South River Technologies (http://www.southrivertech.com). NetDrive ships with Netware, is free of charge, and can be found by searching the web for 「netdrive.exe」. Though it is freely available online, users are required to have a Netware license. (If any of that sounds odd to you, you're not alone. See this page on Novell's website: http://www.novell.com/coolsolutions/qna/999.html)
Apple's OS X operating system has an integrated filesystem-level WebDAV client. From the Finder, select the webdav
filesystem type with the mount command:
$ mount -t webdav http://svn.example.com/repos/project /some/mountpoint $
使っている mod_dav_svn がバージョン 1.2 よりも古い場合、OS X はマウント共有部分を読み書きモードでマウントするのを拒否し、 読み込み専用になルことに注意してください。OS X は読み書きモードでの共有をサポートしていますが、ファイルロックの機能は Subversion 1.2 で初めて サポートされたものだからです。
もう一点だけ: OS X の WebDAV クライアントは HTTP のリダイレクトに 対して必要以上に神経質に動作することがあります。リポジトリをまったく マウントできない場合には、Apache サーバの httpd.conf
ファイルの、BrowserMatch ディレクティブを有効にする必要があるかも 知れません:
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
Linux davfs2 は Linux カーネル用のファイルシステムモジュールで http://dav.sourceforge.net/ で開発されています。 一度インストールしてしまえば WebDAV ネットワーク共有は通常の Linux の mount コマンドによってマウントできます:
$ mount.davfs http://host/repos /mnt/dav