Windows は S3 を知らないまま今日まで来た
エクスプローラーは SMB 共有を割り当てられます。FTP もどうにか扱えます。WebDAV も、ぎこちないながらマウントできます。オブジェクトストレージだけが対象外でした。Windows のどこにも s3:// を処理する仕組みはなく、これまで一度も用意されたことがありません。
macOS も似た状況です。Finder の「サーバへ接続」が受け付けるのは smb、afp、ftp、http、https で、S3 API を話すものはひとつもありません。
バケットの中の画像を Photoshop でそのまま開きたい、S3 に置いた素材を編集ソフトに直接読ませたい、オブジェクトを 3 つデスクトップにドラッグしたい。そのたびに aws s3 cp に戻るか、コンソールのタブを開きっぱなしにするか、ドラッグ一回で済むはずの作業のためにスクリプトを書くことになります。
よく使われる 3 つの方法と、その代償
- s3fs-fuse。枯れていて無料ですが、FUSE が前提です。macOS ではカーネル拡張である macFUSE の導入が必要で、Apple Silicon 機ではセキュリティ低減モードに落として再起動を 2 回。OS のメジャーアップデートのたびに壊れる可能性が残ります。
- rclone mount。ツール自体は優秀です。ただし同じく FUSE が要り、Windows では WinFsp も追加になります。さらに --vfs-cache-mode をどれにするかを先に決めないと、多くのアプリからは書き込みすらできません。
- 商用のマウントドライバ。動きます。そのかわりファイルシステムドライバのインストールと管理者権限が必要で、台数分の費用がかかります。
毎日バケットをマウントする仕事なら、このコストは妥当でしょう。ほしかったのがフォルダひとつだとすると、儀式としては重すぎます。
S3 バケットをネットワークドライブとして割り当てる、ドライバなしで
AnyStorage はこの問題を正面から解かず、迂回します。アプリは通常の S3 API でオブジェクトストレージに接続し、接続中のストレージ一式を、自分のマシンで動く WebDAV サーバーとして提供し直します。WebDAV なら Windows も macOS も最初から理解できるので、マウントには OS 標準のクライアントを使い、カーネル側には何も入りません。
手順は短いです。まずアプリで S3 接続を追加し、一度開いて実際に接続させます。次にサイドバーの「サービス」から WebDAV タブを開き、サーバーを開始します。既定では http://127.0.0.1:3211 で待ち受け、ポートは 1〜65535 の範囲で変更できます。HTTP Basic 認証は常時有効で、ユーザー名の既定値は anystorage、パスワードは初回に 24 文字のランダム文字列が生成されます。どちらも編集可能で、再生成ボタンと、URL・ユーザー名・パスワードのコピーボタンが並んでいます。有効のままにしておけば、次回アプリを起動したときにサーバーも一緒に立ち上がります。
接続中の各接続は、その名前のフォルダとして WebDAV のルートに並びます。バケットもフォルダ、隣にある SFTP のサーバーもフォルダです。
macOS の場合
Finder の「移動」→「サーバへ接続」、あるいは Cmd+K。http://127.0.0.1:3211 を入力して「接続」、「登録ユーザ」を選び、アプリのユーザー名とパスワードを貼り付けます。ボリュームは通常のサーバーと同じように Finder のサイドバーに現れます。
読み取りは HTTP の Range に対応したストリーミングです。4 GB の動画で再生位置を真ん中まで動かすと、オブジェクト全体を落とさずにその周辺のバイトだけを取りに行きます。
Windows の場合
エクスプローラーの「PC」から「ネットワーク ドライブの割り当て」を開き、http://127.0.0.1:3211 を貼り付けて資格情報を入力します。
Windows 標準の WebDAV クライアントについては、後回しにせず先に書いておきます。2026 年現在、WebClient サービスはマイクロソフトによって非推奨とされ、最近の Windows では動いていないことがほとんどなので、まず services.msc から開始してください。もうひとつ、Windows は既定で http 上の Basic 認証を拒否します。レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters にある BasicAuthLevel を 2 にして WebClient を再起動しないと、入力したフォルダーが有効ではないという趣旨のメッセージ、システム エラー 67、あるいは 0x80070043 に出迎えられます。ついでにもう一行。WebClient の 1 ファイルあたりの上限 FileSizeLimitInBytes は既定で 50,000,000 バイト、これを超えるコピーは 0x800700DF で失敗します。
サードパーティ製の WebDAV クライアントを使えば、この 3 つはまとめて回避できます。AnyStorage 自身で転送する場合も同じです。
R2、B2、MinIO、Wasabi も同じドライブに並ぶ
Cloudflare R2、Backblaze B2、Google Cloud Storage、Azure Blob、Alibaba Cloud OSS、Tencent COS には、それぞれ専用の接続タイプがあります。MinIO と Wasabi はカスタムエンドポイント URL と path-style アドレッシングを指定して S3 タイプで接続します。Synology や QNAP の NAS に自前で立てた MinIO も同じ扱いです。Google ドライブ、OneDrive、Dropbox、WebDAV、FTP、SFTP、ローカルフォルダを含めて、接続タイプは全部で 20 種類あります。
効いてくるのはここです。それらがすべて、ひとつの WebDAV ルート配下に並列のフォルダとして現れます。FUSE 方式ならリモートごとにマウントポイントとプロセスを抱えることになりますが、こちらはエンドポイントひとつ、ドライブレターひとつで、バケットが何個あっても変わりません。
鍵は絞る。そしてマウントが苦手なこと
接続には、必要なバケットに絞った資格情報を使ってください。そのドライブレターに触れるものは、アクセスキーにできることをそのまま引き継ぎます。多くも少なくもありません。バケットとプレフィックスを限定した IAM ユーザーを渡すほうが、ルートの鍵を渡すよりずっと安全です。
そのうえで、先に把握しておきたい制限がいくつかあります。
- 無料プランの WebDAV サーバーは読み取り専用です。読み書きは Pro のライセンスが対象で、Pro でもあえて読み取り専用のまま運用できます。ファイルを取り出すだけのマシンなら、むしろそちらが妥当な設定です。
- 現行バージョンに TLS はありません。URL は平文の http です。だからこそ既定では 127.0.0.1 にバインドしています。0.0.0.0 にバインドする LAN モードも用意していますが、有効化時にはアプリが明示的に警告します。平文 HTTP 上の Basic 認証は、資格情報をそのまま流すのと同じだからです。
- アプリを再起動したあとは、接続を一度アプリ内で開くまで WebDAV のルートに現れません。接続は遅延して確立されるためです。あとから追加した接続は、サーバーを再起動しなくても表示されます。
- マウント経由で 2 つの接続フォルダ間を直接コピーすることはできません。最上位の接続フォルダを WebDAV 側から名前変更したり削除したりすることもできません。
最後にひとつ。ネットワークドライブはファイルを扱うためのもので、5 万個のファイルを動かすためのものではありません。移行、大量アップロード、プレフィックス間のコピーは、進捗が見えて失敗をやり直せるアプリの転送画面の仕事です。ドライブレターは、いま開きたい 1 つのファイルのために取っておく。S3 に対して最初に求めていたのも、結局はそれだったはずです。