在 Linux 上挂载 Azure Blob 存储 — NetDrive Ubuntu 版
使用 NetDrive 的实验性 Ubuntu 版本,将 Azure Blob 存储容器挂载为 Linux 挂载点——涵盖设置、身份验证与验证步骤。
某数据工程团队每晚都会将报表文件导出到一个 Azure Blob 存储容器,而负责重新处理这些文件的 Ubuntu 主机不应该为了读取一个文件就在每个脚本里都塞进 Azure SDK。该团队已经有 cp、find 和一堆能正常处理本地路径的 shell 管道。NetDrive 的 Linux 版本会把该容器挂载为其中一个本地路径,这样现有脚本就可以原样继续运行。

在 Ubuntu 上挂载 Azure Blob 存储
NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。
- 运行于 NetDrive 实验性 Ubuntu 版本
- 现有 shell 脚本通过普通挂载点进行读写
- 后台上传,大文件不会阻塞调用进程
免费试用。提供终身与订阅方案。
为什么挂载优于直接调用 Blob API 编写脚本
直接与 Azure Blob 存储对话,意味着要引入 Azure SDK 或 az storage blob CLI 命令,处理 SAS 令牌过期问题,并用当前任务所用语言编写重试逻辑。对单个脚本而言这还可以接受,但一旦有十几个 cron 任务和 CI 步骤都各自需要一套相同的管道代码,负担就会累积起来。挂载该容器则去掉了这一层——任何已经能读写本地路径的程序,都能以同样方式访问该挂载点。
NetDrive 在 3.11.204 版本(2020-07-22)中加入了 Azure Blob 存储支持,该版本同时也加入了 Azure 文件存储支持。在 Linux 上,该连接类型运行于 NetDrive 的实验性 Ubuntu 版本之上,而非经过更充分测试的 Windows 和 macOS 版本——在你把生产流水线指向它之前,这一点值得了解,因为 Linux 在 NetDrive 自己的对比页面上被标注为”实验性”。

你需要从 Azure 门户获取的信息
在打开 NetDrive 之前,先收集以下三项信息:
- 存储账户名称 — 在 Azure 门户中你的存储账户资源的概览页面上可以找到。
- 容器名称 — 要挂载的具体 Blob 容器,例如
nightly-exports。 - 身份验证凭据 — 可以是主账户密钥(Azure 门户 → 存储账户 → Security + networking → Access keys),也可以是限定于该容器的共享访问签名(SAS)令牌。对于无人值守的主机来说,将过期时间与你的凭据轮换策略对齐的 SAS 令牌是更安全的选择。
你还需要 Ubuntu 16.04 或更高版本,并在主机防火墙上开放到 Azure 存储终结点的出站访问。
在 Ubuntu 上安装 NetDrive
NetDrive for Linux 并未收录在 Ubuntu 的默认软件仓库中,因此安装要通过 GitHub 而非 apt 完成:
- 前往 github.com/NetDrive/installer,下载与你的 Ubuntu 版本匹配的发行版。
- 安装前先查看该发行版的版本说明——需要先加载一个驱动组件,否则连接将无法挂载。
- 安装该软件包,然后启动一次 NetDrive 以加载驱动。根据主机的配置情况,此步骤可能会提示输入
sudo。
分步操作:连接一个 Azure Blob 容器
- 打开 NetDrive 的 Drive Manager,点击 + Add Drive。
- 从服务商列表中选择 Azure Blob Storage。

- 输入从 Azure 门户获取的 Account Name 和 Container。
- 将账户密钥或 SAS 令牌粘贴到身份验证字段中。
- 设置挂载点,例如
/mnt/azure-exports,然后点击 Connect。
在任务依赖挂载点之前先验证
在让无人值守任务依赖该挂载点之前,先确认挂载确实生效:
# Confirm the mount is listed
mount | grep azure-exports
# Or just list it
ls /mnt/azure-exports

如果目录显示为空,或挂载始终没有出现,先检查主机防火墙是否允许通往 Azure 存储终结点的出站流量,再去怀疑凭据有问题——在锁定较严的构建服务器上,被阻断的端口比错误的 SAS 令牌更常见。

在 Linux 版本上需要留意的事项
- 发布节奏不同。 为 Windows 或 macOS 发布的修复不会自动在同一周内登陆 Linux 版本。
- 没有
apt集成。 更新来自 GitHub 发行版而非包管理器,因此追踪新版本需要手动进行。 - Windows 和 macOS 获得更深入的测试。 从 Azure Blob 存储读取的夜间导出任务,适合放在 Linux 版本上运行;但在将其置于无人值守的生产流水线之后前,要先做充分测试。
总结
在 Ubuntu 上挂载 Azure Blob 存储容器,能让 Linux 主机获得与 NetDrive 在 Windows 和 macOS 上相同的驱动器式访问方式,而无需围绕 Azure SDK 重写脚本。关于同一服务商在测试更充分的平台上的使用方法,请参阅在 Windows 上挂载 Azure Blob 存储或在 macOS 上挂载 Azure Blob 存储;关于更全面的 Linux 内容,请参阅 NetDrive on Ubuntu Linux。
— Casey, NetDrive