跳到主要内容
AnyStorage
免费下载

挂载 Azure Blob

把 Azure Blob Storage 挂载成本地磁盘(Windows)

Blob 容器不说 SMB,所以 net use 映射不了。BlobFuse2 和 NFS 3.0 各自的前提条件,以及在 Windows 和 macOS 上真正可行的做法。

Blob 容器不是 Azure 文件共享。微软两条挂载路线的真实门槛,以及在 Windows 与 macOS 上能落地的方案。

Azure Blob 挂载 Windows,Azure Blob 网络驱动器,Azure Blob 本地磁盘

Blob 容器不是文件共享

开始之前最该知道的一件事:Azure Blob Storage 和 Azure Files 是两个服务,其中只有一个说的是系统能原生挂载的协议。

Azure Files 提供 SMB,所以 net use \\account.file.core.windows.net\share 能用,微软文档也提醒你要放通 TCP 445。而 Blob 容器是通过 443 端口上的 REST 访问的,根本没有可以指向的 SMB 端点。凡是以 net use 开头教你「映射 Blob 容器」的教程,讲的其实是 Azure Files,只是名字用错了。

微软确实记录了两种挂载容器的方式,但各自的条件都把普通 Windows 桌面排除在外。

每条挂载 Blob 容器的路线到底要求什么
路线客户端系统协议前提条件最终得到什么
Azure Files + net useWindows / macOS / LinuxSMB,445 端口要有 Azure 文件共享,而不是 Blob 容器真正的盘符
BlobFuse2仅 Linux经 libfuse 的 RESTfuse3、配置文件、缓存目录类 POSIX 的挂载点
Blob 的 NFS 3.0Linux,且在虚拟网络内NFS,端口 111 与 2048新建账户,创建时启用分层命名空间与 NFS v3挂载点,仅限 VNet
Azure Storage ExplorerWindows / macOS / LinuxREST一个浏览窗口,不是挂载
本机 WebDAV 桥接,例如 AnyStorageWindows / macOS / LinuxREST,在回环上重新发布盘符或 Finder 里的卷

为什么 BlobFuse2 在 Windows 上帮不上忙

BlobFuse 是微软开源的 Blob Storage 虚拟文件系统驱动,它的文档对平台说得很直白:它用 libfuse 库与 Linux 的 FUSE 内核模块通信,并在 Azure 存储 REST API 之上实现文件系统操作。也就是说,它在 Linux 上挂载容器。没有 Windows 版本,设计上也搬不过来——在 Windows 上做同样的事,意味着要装 WinFsp 这类文件系统驱动。

NFS 3.0 比看上去更苛刻

NFS 3.0 这条路是真的,但很窄。微软的操作指南讲的是从 Linux 的 Azure 虚拟机或本地 Linux 系统挂载容器,真正有意思的是前提条件:

  • 存储账户必须位于一个虚拟网络中;能挂载的是同一虚拟网络内的客户端,或已经连到该虚拟网络的本地网络。
  • 必须启用分层命名空间和 NFS v3,而且文档写明现有账户不能启用 NFS 3.0,只能新建。
  • 协议使用 111 和 2048 端口,客户端出方向要放通,路径上网络安全组的入方向也要放通。
  • 新容器的默认模式是 0750,所以在 root 改权限之前,非 root 用户没有访问权。

sh

mkdir -p /nfsdata
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp \
  mystorageacct.blob.core.windows.net:/mystorageacct/mycontainer /nfsdata

在 Azure 内部有用。但它不是你面前这台 Windows 笔记本拿到盘符的办法。

Storage Explorer 能做什么,不能做什么

Azure Storage Explorer 是一个不错的免费工具,能浏览 blob、队列、表和文件共享。但它不是挂载。它之外的任何程序都无法按路径打开一个 blob,所以剪辑软件、Excel、shell 脚本和备份工具统统被挡在门外。这个区别值得说清楚,因为「桌面客户端」和「挂载的驱动器」经常被混着用,而只有后者能满足一个需要文件系统路径的应用。

在 Windows 拿到盘符,在 macOS 拿到卷

AnyStorage 用存储账户名和访问密钥连接 Azure Blob Storage,凭据加密保存在本机,然后把所有已打开的连接通过跑在你自己机器上的 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:yes

BasicAuthLevel 必须是 2,因为 Windows 默认拒绝在明文 HTTP 上发送 Basic 凭据,而这个端点是回环上的 HTTP。如果映射被「发生系统错误 67。」或「错误代码: 0x80070043」挡下,先查 WebClient 服务——微软在 2023 年 11 月弃用了它,现在默认不启动;完整原因见 net use 错误 67

在 macOS 上,Finder 按 Cmd+K,输入同样的地址和凭据,卷就出现在 /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、阿里云 OSS、腾讯云 COS、Google Drive、OneDrive、Dropbox、WebDAV、FTP、SFTP 和本地文件夹。两个限制要提前知道:免费版挂载只读,读写属于 Pro,且免费版可用两个连接。大文件上传建议在应用里做,那条路径直接走 Azure REST API,也就不受 Windows WebDAV 客户端 单文件 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,所以数据传输和请求次数的计费跟任何其他客户端一样。挂载改变的是界面,不是计费模型。

接着看