坑边闲话:早年笔者一直以为网盘只能通过官方客户端使用,然而官方客户端并不好用。最近一两年,网盘的本地挂载越发成熟,海内外的网盘公司纷纷推出 OpenAPI,允许第三方开发者使用网盘。将 OpenAPI 和 libfuse/winfsp 结合起来就可以实现网盘的本地挂载,基本可以像操作本地文件一样操作网盘里的数据,特别是在只读场景。本文详细介绍商业软件 CloudDrive2 的使用方法。

1. 安装与配置·

CloudDrive2 是一个以网盘本地挂载为卖点的商业软件,虽然目前还处于 0.x 版本,但它已经有了很强的可用性,而且在笔者半年的使用时长中表现非常稳定。

不过要注意,并非所有网盘都支持本地挂载,也并非所有网盘都提供 Open API 允许开发者折腾。比如知名的百度网盘就没有 Open API, 现有的挂载功能基于对百度网盘的协议逆向。

1.1 Windows 与 macOS·

1.2 Linux·

笔者以 Debian 13 为例进行讲解。由于 CloudDrive 官方仅提供编译好的二进制,而且没有提供安装包,因此需要手动下载、解压,并创建系统后台驻留进程。

1.2.1 安装最新版本·

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bash -c '
CD2_VERSION=0.9.10
ARCH="x86_64"
CD2_URL="https://github.com/cloud-fs/cloud-fs.github.io/releases/download/v${CD2_VERSION}/clouddrive-2-linux-${ARCH}-${CD2_VERSION}.tgz"

curl -L -o /tmp/clouddrive2.tgz "${CD2_URL}"
tar -xzf /tmp/clouddrive2.tgz -C /tmp/
sudo mv /tmp/clouddrive-2-linux-${ARCH}-${CD2_VERSION} /usr/local/bin/
sudo mv -f /usr/local/bin/clouddrive-2-linux-${ARCH}-${CD2_VERSION}/ /usr/local/bin/clouddrive
sudo chown -R root:root /usr/local/bin/clouddrive
sudo chmod +x /usr/local/bin/clouddrive/clouddrive
rm -f /tmp/clouddrive2.tgz
echo "CloudDrive2 installation done"
'

1.2.2 创建 systemd 启动项·

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sudo tee /etc/systemd/system/clouddrive2.service > /dev/null << EOF
[Unit]
Description=CloudDrive2 Mount Service
After=network-online.target
Before=docker.service
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/clouddrive/clouddrive
Restart=always
RestartSec=5
User=root
StandardOutput=journal
StandardError=journal

ExecStartPre=/bin/mkdir -p /mnt/CloudDrive

[Install]
WantedBy=multi-user.target
EOF

1.2.3 启动服务·

随后启用 systemd 服务即可。

1
sudo systemctl enable --now clouddrive2.service

2. WebDAV 服务与本地挂载·

在高延迟场景下,特别是跨洲场景,SMB/NFS 等协议由于频繁的元数据同步会变得非常卡。然而大多数时候我们仅仅是想访问很少的文件,为此需要一个轻量化的文件共享协议,既能让我们浏览目录,又能让我们读写文件。WebDAV 就是这样一种简单的协议:

  • 单端口即可完成服务;
  • 可以挂载到本地(需要使用第三方软件);
  • 没有频繁的元数据同步,特别适合偶尔上传、下载少量文件的场景。

图 1. CloudDrive2 的 WebDAV 服务器配置界面。

CloudDrive2 即是 WebDAV 服务器,又可以充当 WebDAV 客户端。

  1. 在服务器上启用 CloudDrive2 的 webdav 功能
  • 添加专用的 webdav 用户或者直接使用 CloudDrive2 账号。
  • 每个账号都有自己可见的虚拟根路径以及对根路径的读写权限预设。建议使用最小权限原则。
  1. 在客户端的 CloudDrive2 界面添加 WebDAV 类型的云存储,填入服务器的验证信息并登录。
  2. 随后可以选择将该云存储挂载到本地,方便后续使用。

上述第三点是 CloudDrive2 绝妙的一个设计,它彻底打通了外源存储的本地挂载多机存储互联的所有障碍,从此一台服务器的存储可以通过 WebDAV 出现在另一个机器的某个目录上。

图 2. 在扮演客户端角色的 CloudDrive2 设置界面添加云存储,并选择 WebDAV.

to be continued.