クライアントの協調動作

すべての WebDAV クライアントは三つのどれかに分類されます— スタンドアロン・アプリケーション、ファイルエクスプローラ拡張、そして ファイルシステムの実装です。これらの分類はおおざっぱに言ってユーザに 対して提供できる WebDAV の機能の種類を決めます。 表 C.1. 「よく利用される WebDAV クライアント」 はその分類と、WebDAV が利用可能な ソフトウェアの共通部品の簡単な説明です。これらのソフトウェアが提供する機能の 詳細と一般的な分類についてはその後の節で見ることができます。

表 C.1. よく利用される WebDAV クライアント

ソフトウェア形式WindowsMacLinux説明
Adobe Photoshopスタンドアロン WebDAV アプリケーションX  WebDAV URL を直接開いたり書き込んだりできる、画像編集ソフトウェア
Cadaverスタンドアロン WebDAV アプリケーション XXコマンドライン WebDAV クライアントで、ファイル転送、ツリー、排他操作をサポートしています。
DAV Explorerスタンドアロン WebDAV アプリケーションXXXWebDAV 共有を閲覧する Java GUI ツールです。
Macromedia Dreamweaverスタンドアロン WebDAV アプリケーションX  WebDAV URL に対して、直接読み書き可能な Web 制作ソフトウェア
Microsoft Officeスタンドアロン WebDAV アプリケーションX  オフィスの生産性を高めるさまざまなコンポーネントからなる製品 で、WebDAV URL に対して直接読み書きすることが可能です。
Microsoft Web フォルダファイルエクスプローラの WebDAV 拡張X  WebDAV 共有上のツリー操作を可能にする GUI のファイルエクスプローラ・プラグラムす。
GNOME Nautilusファイルエクスプローラの WebDAV 拡張  XWebDAV 共有をツリー操作可能な GUI のファイルエクスプローラ
KDE Konquerorファイルエクスプローラの WebDAV 拡張  XWebDAV 共有をツリー操作可能な GUI のファイルエクスプローラ
Mac OS XWebDAV のファイルシステム実装 X WebDAV 共有をマウントする機能を、オペレーティングシステムに組み込みでサポートしています。
Novell NetDriveWebDAV のファイルシステム実装X  Windows のドライブ識別文字をマウントされたリモート WebDAV 共有に 割り当てるための、ドライブマッピング・プログラムです。
SRT WebDriveWebDAV のファイルシステム実装X  機能の一部として、Windows のドライブ識別文字を マウントされたリモート WebDAV 共有に割り当てることも可能な、ファイル転送ソフトウェアです。
davfs2WebDAV のファイルシステム実装  XLinux ファイルシステムドライバで、WebDAV 共有をマウントできます。

スタンドアロン WebDAV アプリケーション

WebDAV アプリケーションとは、WebDAV サーバと通信可能な WebDAV プロトコルの機能を組み込んだプログラムのことです。このような形での WebDAV を サポートしている、最も有名なプログラムのいくつかを紹介します。

Microsoft Office, Dreamweaver, Photoshop

Windows 上では Microsoft Office のような、WebDAV のクライアント機能を 統合した有名なアプリケーションがいくつかあります。 [63] Adobe の Photoshop と Macromedia の Dreamweaver 。 両方とも直接 URL を開いたり保存したりすることができますが ファイルを編集するさい WebDAV の排他制御を頻繁に利用する傾向が あります。

Mac OS X 上にも同じようなたくさんのプログラムが存在しますが、 それらのプログラム上では直接 WebDAV がサポートされているようには見えません。じっさい Mac OS X 上では、File->Openダイアログは パスや URL の入力がまったく許されてはいません。これらのプログラムの Macintosh バージョンでは WebDAV の機能はわざと実装されていない ように見えますが、それは OS X 自身がすでに WebDAV 用のすばらしい 低レベルファイルシステムを提供しているからです。

Cadaver, DAV Explorer

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.

ファイルエクスプローラの WebDAV 拡張

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 Webfolders

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 でもなくなってはいませんが、埋もれてしまっています。以下のような 方法を使っていまでも探すことはできます:

  1. 'ネットワークプレース' を選択します。

  2. 新しいネットワークプレースを追加します。

  3. プロンプトが出たらリポジトリの URL を入力しますが URL には ポート番号を含めます。例えば http://host/reposは、かわりに http://host:80/reposと指定します。

  4. 認証要求に正しく答えます。

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, Konqueror

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.

WebDAV ファイルシステムの実装

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.

WebDrive, NetDrive

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)

Mac OS X

Apple's OS X operating system has an integrated filesystem-level WebDAV client. From the Finder, select the Connect to Server item from the Go menu. Enter a WebDAV URL, and it appears as a disk on the desktop, just like any other mounted volume. You can also mount a WebDAV share from the Darwin terminal by using 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 davfs2 は Linux カーネル用のファイルシステムモジュールで http://dav.sourceforge.net/ で開発されています。 一度インストールしてしまえば WebDAV ネットワーク共有は通常の Linux の mount コマンドによってマウントできます:

$ mount.davfs http://host/repos /mnt/dav


[63] ある理由で WebDAV のサポートは Microsoft Access からは 削除されましたが、それ以外の Office スイートには存在します。