在 Mac 上访问阿里云盘、115、夸克

配合 OpenList 使用 — 大约 10 分钟,需要一台常开的设备。

阿里云盘、115、夸克、百度、迅雷这类网盘,没有向第三方应用开放可以直接接入的通道。它们的开放平台需要国内主体资质、逐个审核,而且授权随时可能被收回 — 社区项目 Alist 就先后失去过 123 云盘、阿里云盘和 115 的授权。

PolyDrive 的做法是不去自己维护这些随时会断的通道,而是支持 OpenList:一个开源的网盘聚合服务,由社区维护这些网盘的对接。你把 OpenList 部署起来,PolyDrive 连接它,就能在访达里像本地文件夹一样使用这些网盘。

这条通道的稳定性不由 PolyDrive 保证。网盘厂商随时可能调整策略,届时需要等待 OpenList 上游跟进。如果你有重要资料存在这些网盘里,请不要把它当作唯一的访问方式。

开始之前

第一步 · 部署 OpenList

用 Docker

mkdir -p /etc/openlist && docker run -d --restart=unless-stopped \
  -v /etc/openlist:/opt/openlist/data -p 5244:5244 \
  -e UMASK=022 --name openlist openlistteam/openlist:latest

查看自动生成的管理员密码:

docker logs openlist | grep -i "initial password"

群晖 / QNAP

在 Container Manager(套件中心的 Docker)里搜索 openlistteam/openlist,映射 5244 端口和一个数据目录,其余参数同上。

完成后

浏览器打开 http://<设备IP>:5244,用 admin 和上一步得到的密码登录。第一件事是改掉这个密码。

第二步 · 在 OpenList 里添加网盘

在后台进入「存储」→「添加」。

网盘选择的驱动获取凭证
阿里云盘 阿里云盘 Open 勾选「使用 OpenList 提供的参数」,ClientID 和 AppKey 都留空,点「获取令牌」,手机扫码,再把得到的 Refresh Token 填回去
115 115 Open 同样是扫码授权流程
夸克 / 百度 / 迅雷 / 天翼 各自对应的驱动 一般是填 Cookie 或扫码

挂载路径/aliyun/115 这样的名字 — 它会成为你在访达里看到的目录名。

顺手改一个设置:缓存时间

在存储配置里找到 cache_expiration(缓存过期时间,单位是分钟),默认 30。OpenList 会把每个目录的列表缓存起来,在这段时间内,你刚在网盘 App 里新增的文件在访达中看不到。想让新文件更快出现,就把它调小。

不要填 0。填 0 不是关闭缓存,而是让缓存条目变成事实上永久有效 — 新增的文件将永远不出现,连更新存储配置都清不掉。

1 的实际生效时间约 70 秒,是个合理的选择。如果只想给某些目录加速,用 CustomCachePolicies,每行一条 glob:ttl

第三步 · 创建一个给 PolyDrive 用的账号

不要把 admin 的密码交给任何客户端。在后台进入「用户」→「添加」,然后必须勾选这三项权限

OpenList 管理后台的「添加」用户表单。「权限」下的复选框中,「写入内容(创建/上传/修改)」「WebDAV 读取」「WebDAV 管理」三项已勾选,「隐藏可见」「重命名」「移动」「删除」「FTP 读取」等其余各项均未勾选。
「权限」下要勾的就是这三个:写入内容(创建/上传/修改)、WebDAV 读取、WebDAV 管理。其余保持不勾。复选框会随窗口宽度换行,所以认文字、不要认位置。点开可看大图。

为什么一个“只读”账号会出问题

PolyDrive 的「从服务器刷新」会主动让 OpenList 丢弃目录缓存(发起一次 refresh=true 的列举),否则你拿到的永远是最多 30 分钟前的旧列表。而 OpenList 要求发起刷新的账号在该路径上有写权限:只给读取和管理权限(权限值 768)会被拒绝,加上写入位(776)才能通过。

只读账号不会报错,只会让刷新静默失效 — PolyDrive 会一直告诉你“已是最新”,因为它从服务器拿到的答案确实逐字节没变。

这不只影响“看不到新文件”。目录缓存里过期而偏小的文件大小,可能让一次分段读取被提前截断。请不要给 PolyDrive 用只读账号。

第四步 · 在 PolyDrive 里连接

在 PolyDrive 中添加存储,选择 OpenList,然后填写:

连接成功后,你在 OpenList 里挂的所有网盘,会作为子目录出现在访达的同一个位置下。

从外网访问:不要直接把 5244 端口暴露到公网。用 Tailscale 之类的组网工具,或者用反向代理配上 HTTPS。

排查

现象原因解决
网盘 App 里新增的文件,访达里看不到;点刷新说“已是最新” OpenList 的目录缓存没有被清除 检查 PolyDrive 用的账号是否勾了「写入内容(创建/上传/修改)」,并把 cache_expiration 调小
出现 403 Refresh without permission 同上,账号缺少写权限 补上权限后重新连接
目录能正常列出,但打开文件失败或卡住 客户端跟不了 302 跳转 在该存储的配置里,把 WebDAV 策略从「302 重定向」改成「使用代理 URL」。流量会经 OpenList 中转,慢一些但兼容性更好
Too Many Requests 触发了网盘的频率限制 等几分钟。避免短时间内大量遍历目录
某个网盘突然全部无法访问,例如报 UserNotAllowedAccessDrive 上游授权被限制 这是网盘厂商侧的变化,请关注 OpenList 的更新
用了一段时间后授权失效 Refresh Token 过期或被撤销 回到 OpenList 后台,对该存储重新扫码授权

添加驱动时找不到对应的名字

OpenList 的驱动名称区分大小写,而且不一定符合直觉(例如通用的 WebDAV 驱动叫 WebDav,不是 WebDAV)。以后台列表里显示的名字为准。

使用前请了解

按这份指南走完仍然连不上?写信到 [email protected],并附上应用内错误对话框里 Copy Diagnostics(拷贝诊断信息)按钮给出的内容。另见疑难解答

一次性买断,没有订阅。需要 macOS 15.4 或更高版本。

在 Mac App Store 下载 PolyDrive