Blob コンテナーはファイル共有ではありません
始める前に知っておくと一番役に立つこと。Azure Blob Storage と Azure Files は別のサービスで、OS が標準でマウントできるプロトコルを話すのは片方だけです。
Azure Files は SMB を公開しています。net use \\account.file.core.windows.net\share が通るのも、マイクロソフトのドキュメントが TCP 445 を開けておくよう注意しているのも、そのためです。一方 Blob コンテナーはポート 443 の REST で扱うもので、ドライブ文字を向ける SMB エンドポイントはありません。net use から始まる「Blob コンテナーを割り当てる」記事は、Azure Files の話を別の名前で書いています。
マイクロソフトはコンテナーのマウント方法を二つ文書化していますが、どちらも条件が厳しく、普通の Windows デスクトップからは外れます。
| 経路 | クライアント OS | プロトコル | 前提条件 | 得られるもの |
|---|---|---|---|---|
Azure Files を net use | Windows / macOS / Linux | SMB、ポート 445 | Blob コンテナーではなく Azure ファイル共有 | 本物のドライブ文字 |
| BlobFuse2 | Linux のみ | libfuse 経由の REST | fuse3、設定ファイル、キャッシュ領域 | POSIX 風のマウントポイント |
| Blob の NFS 3.0 | Linux、仮想ネットワーク内 | NFS、ポート 111 と 2048 | 新規アカウント、階層型名前空間と NFS v3 を作成時に有効化 | マウントポイント、VNet 限定 |
| Azure Storage Explorer | Windows / macOS / Linux | REST | なし | 閲覧用のウィンドウ。マウントではない |
| ローカル WebDAV ブリッジ(AnyStorage など) | Windows / macOS / Linux | REST をループバックで再公開 | なし | ドライブ文字または Finder のボリューム |
BlobFuse2 が Windows では役に立たない理由
BlobFuse はマイクロソフトのオープンソースの仮想ファイルシステムドライバーで、ドキュメントはプラットフォームについて明確です。libfuse ライブラリを使って Linux の FUSE カーネルモジュールと通信し、Azure Storage の REST API の上にファイルシステム操作を実装します。つまり Linux でコンテナーをマウントするものです。Windows 版はなく、設計もそのままでは移せません。Windows で同じことをするなら WinFsp のようなファイルシステムドライバーの導入が必要になります。
NFS 3.0 は見た目より条件が厳しい
NFS 3.0 の経路は実在しますが狭いです。マイクロソフトの手順は Linux の Azure VM またはオンプレミスの Linux からコンテナーをマウントする流れで、面白いのは前提条件の方です。
- ストレージアカウントは仮想ネットワークの中にある必要があります。マウントできるのは同じ仮想ネットワーク内のクライアント、またはそこに接続されたオンプレミスのネットワークからです。
- 階層型名前空間と NFS v3 を有効にする必要があり、記事は既存のアカウントでは NFS 3.0 を有効にできない、新規作成が必要だと明記しています。
- プロトコルはポート 111 と 2048 を使います。クライアントからの送信と、経路上のネットワーク セキュリティ グループの受信で開けておく必要があります。
- 新しいコンテナーの既定のモードは
0750なので、root がモードを変えるまで一般ユーザーはアクセスできません。
sh
mkdir -p /nfsdata
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp \
mystorageacct.blob.core.windows.net:/mystorageacct/mycontainer /nfsdataAzure の中では有用です。今この文章を読んでいる Windows のノート PC でドライブ文字を得る手段ではありません。
Storage Explorer にできることとできないこと
Azure Storage Explorer は blob、キュー、テーブル、ファイル共有を見るための良い無償ツールです。ただしマウントではありません。外部のアプリケーションはパスで blob を開けないので、動画編集ソフトも Excel もシェルスクリプトもバックアップツールも締め出されたままです。この区別は大事です。「デスクトップクライアント」と「マウントされたドライブ」は混同されがちですが、ファイルシステムのパスを要求するアプリを満足させるのは後者だけです。
Windows のドライブ文字、macOS のボリュームを得る
AnyStorage はストレージアカウント名とアクセスキーで Azure Blob Storage に接続し、資格情報をローカルに暗号化して保存したうえで、開いている接続をすべて自分の PC 上の WebDAV サーバーから公開します。サイドバーの Services、WebDAV タブ、Start、エンドポイントは http://127.0.0.1:3211、HTTP Basic 認証は常時有効で、既定のユーザー名は anystorage、パスワードは初回生成の 24 文字です。
Windows では一度割り当てるだけです。
cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v BasicAuthLevel /t REG_DWORD /d 2 /f
net stop WebClient
net start WebClient
net use Z: http://127.0.0.1:3211/ /user:anystorage * /persistent:yesBasicAuthLevel を 2 にするのは、Windows が既定で平文 HTTP に Basic 資格情報を送らず、エンドポイントがループバック上の HTTP だからです。「システム エラー 67 が発生しました。」や「エラー コード: 0x80070043」で拒否される場合は、まず WebClient サービスを確認します。マイクロソフトが 2023 年 11 月に非推奨とし、既定では起動しません。原因の一覧は net use のエラー 67 にあります。
macOS では Finder で Cmd+K、同じ URL と資格情報で /Volumes にボリュームが現れます。ネットワークマウントであってファイルシステムドライバーではないので、macFUSE もカーネル拡張も不要です。AnyStorage は macOS 11 以降、Windows 10 以降、Ubuntu 20.04 以降に対応し、0.2.24 は 2026 年 9 月 23 日公開、Mac では brew install --cask kilerd/tap/anystorage で入ります。
同じドライブ文字の下に、Blob コンテナーと一緒に S3、Cloudflare R2、Backblaze B2、MinIO、Google Cloud Storage、Alibaba Cloud OSS、Tencent Cloud COS、Google ドライブ、OneDrive、Dropbox、WebDAV、FTP、SFTP、ローカルフォルダーが並びます。先に知っておくべき制約は二つ。無料版ではマウントは読み取り専用で、読み書きは Pro の機能、接続数は二つまでです。大きなアップロードはアプリ内で行う方が確実で、その場合は Azure の REST API と直接やり取りするため、Windows の WebDAV クライアントの 1 ファイル 50MB という既定値 の影響も受けません。
net use で Blob コンテナーを割り当てられますか。
できません。net use は SMB か WebDAV を必要としますが、Blob コンテナーはどちらも提供しません。SMB のサービスは Azure Files です。データが本当に blob にあるなら、ブリッジか Linux 向けのマウント経路のどちらかになります。
Windows 版の BlobFuse はありますか。
ありません。BlobFuse2 は libfuse と Linux の FUSE カーネルモジュールの上に作られています。Windows で同等のことをするには WinFsp のようなサードパーティのファイルシステムドライバーが必要で、WebDAV マウントはそこを丸ごと回避します。
既存のストレージアカウントで NFS 3.0 を有効にできますか。
できません。マイクロソフトの記事は、階層型名前空間と NFS v3 を有効にした新しいアカウントを作る必要があり、既存のアカウントはアップグレードできないと書いています。この経路を選ぶなら移行の工数を見込んでください。
マウントすると Azure の課金は変わりますか。
マウント経由の読み取りも blob エンドポイントへの REST の GET なので、他のクライアントと同じようにデータ転送とトランザクションの課金が発生します。マウントが変えるのはインターフェースであって課金モデルではありません。
次に読む
- S3 での同じ話(R2 や MinIO のエンドポイントを含む): S3 をネットワークドライブとしてマウント
- データが Cloudflare R2 にある場合: Cloudflare R2 をローカルドライブとしてマウント
- Windows の割り当てが通らないとき: Windows で WebDAV に接続できないとき