WebDAVサーバの読み書き

ファイル共有の方法をFTPからWebDAV/SSLに切り替えることにした。 とりあえずサーバ側は既存の資源を使うことにして、クライアント側の話。

WebDAVサーバ領域を読み書きできるツールはいろいろある。知っている範囲で例 を挙げる。

  • 読み出し(ダウンロード)

    • Webブラウザ(Firefox、IEなど)
    • Explorer (Windows)
    • Finder (Mac OS X)
  • 書き込み(アップロード)

    • Explorer (Windows)
    • Finder (Mac OS X)
    • curl
    • cadaver

Explorer

  1. 「マイ ネットワーク」で 「ネットワークタスク > ネットワーク プレースを追加する」 を選ぶ
  2. ウィザードの指示に従ってURLを入力する

Finder

  1. Finderのメニューで「移動>サーバへ接続」を選ぶ
  2. 「サーバアドレス欄」にURLを入力する

curl

コマンドラインツールでアップロードする場合はcurlが便利。

$ curl --upload somefile https://example.com/foo/

パスワードをファイルに保管しておきたいので、こんな感じ。

$ touch upload_url.private
$ chmod 600 upload_url.private
$ vi upload_url.private
https://user:password@example.com/foo/
$

$ curl --upload somefile `cat upload_url.private`

--verboseオプションを付けると分かりやすい。

$ curl --verbose --upload somefile `cat upload_url.private`

サーバのSSLの認証局がマイナーで証明書がブラウザに標準搭載されていない場合 は、証明書を--cacertオプションで指定する。例えばDebianでcacert.orgを使う 場合は、ca-certificatesパッケージをインストールしてcacert.org.crtを指定す ればよい。

$ curl --verbose \
       --cacert /usr/share/ca-certificates/cacert.org/cacert.org.crt \
       --upload somefile `cat upload_url.private`

SSLのエラーを無視する--insecureオプションもデバグには役立つ。実運用に使う のはまずいけど。

cadaver

コマンドラインから使えるWebDAVクライアントとしては、curl以外にcadaverもあ る。でも~/.netrcファイル経由でしか認証情報を渡せないようなので、ちょっと 不便。(.netrcを書き換えるスクリプトを用意すれば一応動く。ただし排他制御 が必要。)

資料