在 Linux 上挂载腾讯云 COS——NetDrive 的实验性 Ubuntu 版本

阅读时间 7 分钟 provider-guide tencent-cloud linux
Robin
RobinDeveloper Advocate
使用 NetDrive 的实验性 Linux 版本,将腾讯云 COS 存储桶挂载为原生 Ubuntu 挂载点。包含 SecretId 设置、端点配置与验证步骤。

某短视频平台的转码流水线运行在一批 Ubuntu 工作节点上,这些节点需要直接从腾讯云对象存储(COS)读取原始上传文件——不必在每个工作节点脚本里接入 SDK,只需要一个 ffmpeg 任务能打开的路径。当队列每天要处理数千条片段时,在每个任务开始前先把源文件复制下来会浪费磁盘空间和时间。NetDrive 的 Linux 版本能把 COS 存储桶挂载为一个普通的 Ubuntu 挂载点,这样工作节点的文件读取就能直接到达存储桶——与 NetDrive 在 Windows 和 macOS 上以盘符形式提供的交互方式相同。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

在 Linux 上挂载腾讯云 COS

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • COS 存储桶以普通 Ubuntu 挂载点的形式出现
  • 文件按需流式传输——任务开始前无需下载整个存储桶
  • 可与 S3、阿里云及其他 20 多家云服务商在同一台机器上并行运行
WindowsmacOS
下载适用于 Linux 的 NetDrive →

免费试用。提供终身与订阅方案。

NetDrive Linux 版本中的腾讯云支持

NetDrive 在 3.17.799 版本(2022 年 11 月)中加入了对腾讯云的支持,同一版本也加入了对阿里云的支持。在 Windows 和 macOS 上,这项支持被视为生产级功能;在 Linux 上,它带有实验性标签——这一标签适用于整个 Linux 版本,而非针对某个特定服务商。目前所有桌面平台上的 NetDrive 当前版本均为 3.19.7。

NetDrive for Linux 并不通过 apt 或发行版的包管理器分发——它以 GitHub 发行版的形式提供,地址为 github.com/NetDrive/installer,最低支持版本为 Ubuntu 16.04

在 Ubuntu 上安装 NetDrive

  1. 前往 github.com/NetDrive/installer,下载与你的 Ubuntu 版本相匹配的发行版。
  2. 按照附带的发行说明安装 NetDrive 挂载所需的驱动组件——该过程可能会提示输入 sudo
  3. 安装 NetDrive 软件包。
  4. 从终端或桌面环境的应用程序菜单启动 NetDrive。

Linux 版本有自己独立的发布节奏,与 Windows 和 macOS 的更新是分开的。本周针对某个平台发布的修复,并不保证会在同一周内到达 Linux 版本——如果无人值守的工作节点依赖某个特定的 NetDrive 行为,这一点值得留意。

收集腾讯云 COS 凭证

在打开 NetDrive 之前,先从腾讯云控制台收集以下信息:

  • SecretId 和 SecretKey ——来自 CAM → API Keys(console.cloud.tencent.com/cam/capi)。
  • 存储桶名称 ——显示格式为 <BucketName>-<AppId>,例如 raw-uploads-1250000001
  • 地域与端点 ——例如 ap-guangzhou,对应端点为 cos.ap-guangzhou.myqcloud.com

分步操作:在 Ubuntu 上连接腾讯云

  1. 打开 NetDrive 的驱动器管理器,点击 + Add Drive
  2. 从连接类型列表中选择 Tencent Cloud
  3. 输入 SecretId 和 SecretKey、端点(cos.<region>.myqcloud.com),以及包含 AppId 后缀的完整存储桶名称。
  4. 设置挂载点——例如 /mnt/cos-uploads 这样的路径,或你的用户账户具有写入权限的任意空目录。
  5. 点击 Connect。NetDrive 会对腾讯云 COS 进行身份验证,并将存储桶挂载到该路径。

NetDrive mounting a cloud storage account as a local drive — the same interaction the Linux build provides at a mount point

在依赖挂载之前先验证它

不要只信任文件管理器,而应从终端确认挂载状态——在实验性版本上尤其如此:

# Confirm the mount is listed
mount | grep cos

# Or just try listing it
ls /mnt/cos-uploads

Confirming that a cloud drive connected successfully after mounting on the NetDrive Linux build

点击 Connect 后挂载点仍为空——检查该目录是否存在,以及运行 NetDrive 的用户是否对其具有写入权限。不可写或不存在的挂载点是 Linux 上静默失败最常见的原因。

首次尝试认证失败——确认存储桶名称是否包含其 AppId 后缀(应为 raw-uploads-1250000001,而非仅 raw-uploads),并确认端点所指的地域与控制台中存储桶的实际地域一致。即便 SecretId 和 SecretKey 都正确,地域端点不匹配仍是连接被拒绝最常见的原因。

对象数量较多的存储桶首次列出较慢——Linux 版本以与 Windows 和 macOS 相同的方式流式加载目录列表,因此存放数万个对象的存储桶在首次浏览时需要一点时间才能显示完整。

面向写密集型任务的后台上传

对于需要在每个任务结束后将处理结果写回存储桶的转码流水线,NetDrive 会将这些写入操作放入后台队列,而不会阻塞触发它们的进程:

Background upload queue showing file transfer progress to a mounted cloud drive

这对于需要在交出输出文件后立即处理队列中下一项任务的工作脚本来说很重要,它无需等待上传完成即可继续执行。

在 Linux 版本上需要留意的事项

  • 独立的发布节奏——Linux 驱动有自己的发布计划,独立于 Windows 和 macOS。
  • 没有包管理器集成——安装和更新都通过 GitHub 发行版进行,而非 apt
  • Windows 和 macOS 仍是经过最充分打磨的目标平台——鉴于实验性标签,在无人值守的生产工作节点集群上使用 Linux 之前,应先在自己的硬件上进行充分测试。

小结

在 Ubuntu 上挂载腾讯云 COS,能让 Linux 工作节点集群获得与 NetDrive 在 Windows 和 macOS 上相同的类驱动器访问方式,只是安装程序通过 GitHub 分发,而非 apt。如果想在测试更充分的平台上使用同一服务商,请参阅在 Windows 上用 NetDrive 挂载腾讯云;想了解更全面的 Linux 情况,请参阅在 Ubuntu Linux 上使用 NetDrive;想了解同一 Linux 版本上另一个区域性服务商,请参阅在 Linux 上用 NetDrive 挂载阿里云

— Robin, NetDrive