从一条分享链接到磁盘上的一个文件,中间其实有好几步。这篇把每一步说清楚, 包括哪些地方容易卡住、卡住了通常是什么原因。
一条分享链接的完整旅程#
- 复制链接。任何地方复制的都行 —— 聊天记录、浏览器、别的应用。带提取码的链接也直接复制, 应用会尽量自己识别出来。
- 切回应用。如果剪贴板里有可识别的链接,解析页会主动提示"粘贴",点一下就好; 没有提示也可以手动贴进去。
- 解析。应用去问网盘"这个分享里有什么"。
- 浏览。分享可能是一整个文件夹。解析成功后你会看到里面的文件和目录,可以逐层进去挑。
- 取直链。选中要下的文件后,应用向网盘换取一个可以直接下载的地址。 这一步是网盘权限的关键:没有登录就拿不到可用的直链,这也是下面要讲登录的原因。
- 下载。直链交给下载引擎,任务出现在「下载」页,可以暂停、继续、删除、打开。
登录#
| 网盘 | 登录方式 |
|---|---|
| 夸克网盘、UC 网盘、百度网盘、139 网盘(和彩云) | 在应用内打开官方网页登录,登录成功后自动保存 Cookie |
| 迅雷网盘 | 账号密码或短信验证 |
| 123 云盘 | 网页登录 |
| 115 网盘、光鸭云盘 | 网页 / 应用内登录页 |
| 蓝奏云、蓝奏云优享版 | 网页登录 |
为什么一定要登录:网盘对未登录访客只开放很小一部分内容 —— 看得见文件名,却拿不到能用的下载地址。 登录之后才有权限换取直链、浏览完整目录。
不建议使用百度网盘。 它的风控比较激进,可能导致账号被限制,请谨慎使用。
下载#
普通 HTTP/HTTPS 直链和网盘取到的直链走同一套下载流程:分片并发、断点续传、失败重试。 暂停后继续会按磁盘上真实写完的字节接着下,而不是从头再来。
链接如果指向 .m3u8(HLS 清单),会走 HLS 下载路径:解析清单、并发下载分片、必要时解密。 它是下载能力,不是播放器 —— 把整个流下成本地文件,不做实时播放。
并发是可以调的,但不建议拉满。应用把连接数上限装配为 16、诊断档位上限 64, 网盘服务端普遍有风控,线程越多反而越容易触发限速。
文件存到哪里#
默认是设备的公共 Download 目录,和浏览器下载的地方是同一个。这个默认值在大多数设备上不用改。
如果你希望换个目录,应用里可以指定。这里有个 Android 版本的差别值得知道:
- Android 10 及以下:走传统文件路径,授予存储权限即可。
- Android 11 及以上:系统对公共目录有"分区存储"限制。用默认的
Download目录不需要额外授权; 想写到自己指定的目录,需要在系统设置里给应用开「所有文件访问」。
不开也能用 —— 下载引擎会自动退到应用自己的外部私有目录,只是那个目录别的应用不容易访问。
认证与备份#
网盘凭证(Cookie、token 之类)用 Android Keystore 加密后存在本地数据库里, 密钥本身不可导出,只在这台设备上有效。
换设备时不必一个个重新登录:「设置 → 导出网盘认证」会把认证信息打包加密成一个文件, 在新设备上导入即可。导出时会要求你设一个口令,这个口令没有找回途径 —— 文件是用它派生的密钥加密的,忘了就只能重新登录一遍。
权限都用在什么地方#
应用申请的权限不多,每一个都有明确的用途:
| 权限 | 用途 |
|---|---|
| 网络 | 访问网盘接口、下载文件。没有它什么都做不了 |
| 通知 | 显示下载进度、完成提醒。Android 13+ 需要你手动允许 |
| 前台服务(数据同步) | 应用退到后台时继续下载 |
| 保持唤醒 | 息屏时维持网络与 CPU,避免长下载在锁屏后断掉 |
| 忽略电池优化 | 可选。系统省电策略可能掐掉后台下载,允许加入白名单可以避免 |
| 安装未知来源应用 | 用于应用内更新自己 |
| 写外部存储(Android 10 及以下) | 写入公共 Download 目录 |
| 所有文件访问(Android 11 及以上) | 可选。只有当你把下载目录改到公共 Download 之外时才需要 |
换引擎#
设置里有下载引擎的选项。默认的 TurboDL 覆盖绝大多数场景; 磁力、BT 这类它做不了的任务需要先导入 Gopeed 内核。 这些选择各自适合什么、有什么代价,写在下载引擎里。