世界を動かす技術を、日本語で。

WebDAVはまだ死んでいない

概要

  • S3の普及が進む中、WebDAVの有用性を再評価する提案。
  • 個人プロジェクトやセルフホスト には、S3よりWebDAVが適している理由を解説。
  • WebDAVの導入・利用方法 や、主要なクライアント・サーバー設定例の紹介。
  • 具体的なApache設定例 と、実際の活用シーンを列挙。
  • WebDAVの現役性と将来性 にも言及し、利用を推奨。

S3の現状と課題

  • FTPの終焉SFTPの依存性 による使いづらさ。
  • AWS S3の普及 で、多くのWebアプリがS3連携を前提とする現実。
  • Amazonに有利な構造 だが、他のユーザーにとっては負担。
  • S3依存からの脱却 を推奨する立場。
  • S3の管理や設定の複雑さ (例:Minioの管理UI廃止、複雑なJSONポリシー)。

WebDAVの有用性と適用範囲

  • 個人プロジェクトやセルフホスト 利用者にはWebDAVが最適解。
  • ファイル保存+認証 のみが必要なケースへの適合。
  • S3の高度な機能 (ACL、署名付きURL、バージョニング等)は不要な場合が多い。
  • WebDAVの導入コストの低さ とシンプルさ。
  • Openstack SwiftやCEPH、Minioなどの大規模分散ストレージ は必要ない場合が多い。

WebDAVの基本要件と不要な機能

  • 必要な要件
    • 認証機能
    • 効率的なファイル書き込み
    • ファイル同期機能
    • デフォルトで非公開設定
    • 公開設定の容易さ
  • 不要な機能
    • 高度なACLやロール管理
    • 署名付きURL
    • バージョニング
    • 階層ストレージやライフサイクルルール
    • クォータ管理 (必要ならファイルシステム側で対応)

WebDAVのクライアント・サーバー対応状況

  • 主要OSでのサポート
    • MacOS Finder(サーバーへ接続)
    • iOS Files
    • Windows Explorer(ネットワークドライブ割当)
  • rcloneやcurlなどのCLIツール
  • CyberDuck、WinSCP、Filezilla などのGUIクライアント
  • 主要Webサーバー (Apache, Nginx, Caddy, Lighttpd, IIS)でのサポート
  • OwnCloud/NextCloud でもWebDAV標準対応
  • CardDAV/CalDAV としても活用(連絡先・カレンダー同期)

ApacheでのWebDAV構築例

  • Apacheのモジュール有効化
    • dav_module, dav_fs_module, dav_lock_module
  • 古いクライアント向け互換性設定 (BrowserMatch)
  • VirtualHost設定
    • SSL有効化
    • DirectoryIndex無効化
    • DavLockDB, DavMinTimeout, DavDepthInfinity設定
  • ディレクトリ単位のWebDAV有効化
    • DAV On
    • LDAP認証(AuthType Basic, AuthBasicProvider ldap, AuthLDAPURL等)
    • アクセス制御(Require ldap-group, Require valid-user)
  • ユーザーディレクトリへのリダイレクト
    • RewriteEngine利用
    • ユーザー名に基づくサブディレクトリ割り当て

WebDAVの具体的な活用例

  • Joplin (セルフホスト型ノートアプリ)との同期
  • Keepassium (iOS/MacOS向けKeepassアプリ)との連携
  • VLCやInfuse でのメディアファイル管理
  • rcloneによる静的ブログの公開 (NFS/SMBより高速、VPN不要)
  • Altmount (Usenetコンテンツのマウント)などの新しいプロジェクトにも注目

まとめ:WebDAVの現役性と推奨理由

  • WebDAVは古い技術と見なされがちだが、現役で有用
  • 多様なクライアント・サーバーでの広範なサポート
  • シンプルな要件に最適な選択肢
  • 大規模ストレージソリューションを使うほどではない用途に最適
  • 今後も活用価値が高い技術

Hackerたちの意見

著者はS3 APIとS3自体を混同してるみたいだね。今はほとんどのベンダーがS3 APIの互換性を製品に組み込んでる。みんなそれをモデルとして使うのに慣れちゃってるからね。

S3 API互換を試みてるって感じだね…

俺もほぼ同じコメントをしようとしてた。S3 APIに問題は全くないし、MinioやS3に対する不満は基本的に関係ないと思う。これは多くのソリューションが実装してるAPIなんだから。

後で投稿の中でS3互換のサーバーについても言及してるね。本当にプロトコル自体の話みたいだ。

「FTPは死んだ」って言うけど、共有ウェブホスティングはそれに反論したいところ。まだ結構な数のウェブホストが、ウェブサイトをホスティングサーバーにアップロードするのにFTPを使うって話してるよ。最近はSSHキーをアップロードしてSFTPを使うこともできるけど、ドキュメントではFileZillaや基本的なFTPのツールについてまだ触れてる。証拠A: https://help.ovhcloud.com/csm/en-ie-web-hosting-ftp-storage-...

共有ホスティングは死にかけてるけど、まだ完全には死んでない。FTPも一緒に死にかけてるね。ソフトウェアの配布や学術界がFTPから離れた今、FTPの最後の大きな使い道になってる。共有ホスティングの人気が落ち続ける中で、FTPもそれに伴って消えていくんだろうね。私もFTPの栄光の日々が懐かしいよ :'(

たぶん15年くらい古いFTPは使ってないな。2025年にあの暗号化されてないプロトコルを使うなんて、ありえないよね?そのリンクから:2. SSH接続 このアクセス方法を使うには、上級者向けの知識とOVHcloudのウェブホスティングプランProまたはPerformanceが必要です。まあ、もしかしたら使うかもしれないけど、そのプロバイダーはリストから外すかな。

Devonthinkのデータベースを同期するために、SabreでシンプルなWebDAVサーバーを作ったよ。WebDAVは複数のiCloudアカウントのユーザー間で同期できる唯一のオプションで、世界中どこでも使えて、Dropboxのサブスクリプションも必要ない。CloudKitよりも早く同期できるし、他のWebDAVの使い道はないけど、この一つは数年間メンテナンスやコストなしで動くと思ってる。便利なプロトコルだね。

iOSのDevonThinkのWebDAV同期は信頼性があって、速いし、メンテナンスもされてるし、サブスクリプションもないし、ウェブスクレイパーも含まれてる。LLMチャットボットのマークダウンを保存するのにいいよ。

WebDAVの面白い使い方の一つは、SysInternals(Windows用のツール集)で、Windows ExplorerからWebDAV経由でアクセスできるよ。\live.sysinternals.com\Toolsに行けばいい。

それってWebDAVじゃなくてSMBじゃない?

同じテーマで、WebDAVは死んでないと思うから、最近WIPを公開したんだ。これはもっと大きなプロジェクトの一部で、nginxモジュールでWebDAVファイルサーバーを作って、NextCloudの同期クライアント(デスクトップとAndroid)と互換性がある。Gnome Online AccountsやNautilus(多分他のも)ともWebDAVサーバーとして使えるよ。見てみて: https://codeberg.org/lunae/dav-next /!\ まだWIPだから、どこにもパッケージされてないし、バイナリリリースもないけど、フィードバックは大歓迎だよ。

実際、君はすでにWebDAVを使ってるけど、気づいてないだけだよ。Tailscaleのドライブ共有機能はWebDAV共有として実装されてる(http://100.100.100.100:8080に接続してみて)。FastmailのファイルストレージにもWebDAV経由で接続できるよ。WebDAVって便利だね。

いつもCopyPartyのインスタンスをマウントするのに使ってるよ。めっちゃいい感じ!

rcloneのWebDAVクライアント(バックエンド)とWebDAVサーバーの両方を書いたんだ。だから、WebDAVサーバーとの同期やマウントも問題なし。自分のファイルシステムをWebDAVサーバーとして公開することもできるし、S3バケットやGoogle Driveなんかもね。WebDAVのRFCはFTPよりも良いけど、まだまだ仕様が完全に決まってない部分が多くて、サーバーやクライアントがそれぞれ違うやり方を選ぶから、いろいろなワークアラウンドが必要になるんだよね。プロトコルはデフォルトで変更時刻を設定できないから、同期ツールには重要なんだけど、owncloudやnextcloudみたいな人気の実装はそれができる。ハッシュについても同じ。だけど、プロトコル自体はすごく速くて、SFTPよりもずっと速いよ。HTTPやTLSなどの最適化されたウェブ技術に基づいてるからね。

これをNFSと比べるとどうなるんだろう(NFSはTCPベースで、たぶん暗号化もされてると思うけど)。良い比較とは言えないけどね。NFSはそんなに人気じゃないし、macOSではできるけど、Windowsではできないと思う。でも、WindowsとmacOSの両方ともWebDAVはできるよ。

WebDAVは、シンプルな理由で長く使われると思うんだ。理解しやすくて実装も簡単だからね。うちの会社はファイル共有のためのクラウドプラットフォームを持っていて、WebDAVを使ってドライブとして機能させる機能を開発中なんだ。他のプロトコルも後でサポートするかもしれないけど、最初にWebDAVを選んだのは、HTTPでファイルを配信するためのインフラがすでに整っていたから。WebDAVをサポートするための追加の複雑さはほぼゼロだったし、他のプロトコルをサポートするのはもっと大変そうだよ。

完全に同意だね。つまらない技術(商標)だけど、そういうのが結局は正しい道だと思う(次の大きなものに頼るんじゃなくて)、しかもオープンスタンダードだしね。

この投稿のタイトルを「S3が嫌い」とすべきだった。必要なところで使えばいいんだ。S3は必ずしもAmazonを使うことと同じではないよ。自分はGarage S3プロジェクトが好きで、これは小規模な用途やセルフホスティングシステムに面白いと思う。プロジェクトはEUのHorizon助成金でNLnetを通じて資金提供されているんだ。 https://garagehq.deuxfleurs.fr/

それに関連する記事「AWS S3 SDKが事実上のウェブプロトコルになってしまったのが嫌だ」と書くべきだな。

9pがもっと一般的に使えるようになればいいのに。WindowsとMacは両方とも9pのサポートが組み込まれているけど、エンドユーザーからはロックされているんだ。WindowsはWSLとの通信専用だし、macOSも9pは仮想化システムとの通信専用だよ。UIから9pをマウントできたらすごいのに。