问题
作为资源共享平台, 百度云做的还是很出色的, "xxx site:pan.baidu.com"就可以找到很丰富的资源. 然而, 下载百度云上的文件就略蛋疼了. 早在12年的时候, 百度云还是一个良心企业, 不仅免费送容量, 而且下载不限速不限时不用客户端, 看片不会被绿*坝, 在教育网内甚至可以达到10M/s的速度.
当然现在容量已经不是什么问题了, 13年的空间大战早已让我们步入T级时代, 但是下载的各种限制着实让人伤不起.
绿*坝的存在让我们丧失了大量的片源 但作为遵纪守法的公民, 这点还是应该拥护的
但是CDN的分发让我们只能默默忍受浏览器的单线程下载, 就算用了它的客户端也是换汤不换药, 走的还是同一条网路. 慢慢下也就慢慢下吧, 问题是他还给下载链接加上了时效, 对于稍大一点的文件, 就会遇到这个问题:
{ "error_code":31064, "error_msg":"xcode expire time out error" }
不确定Windows用户的云管家是不是解决了这个问题, 但作为mac版客户端, 已经半年没更新的项目组似乎早已解散, 根本不想解决这个问题了. 我只想下载区区14G的 GTA IV 呀, 几次都是下载到8G左右就挂了, 是可忍孰不可忍!
解决方案
mac下的断点续传工具还是有的, 迅雷, Folx, Speed Download, 资源就自己去找吧. 但是我们要面临的一个困难是: 我们要让断点续传工具能够在切换下载地址的情况下继续运转, 并保证下载文件不出错.
迅雷作为优秀的国产软件, 秉承了国内优秀的傻瓜传统, 除了一键下载, 似乎再没可配置空间, 配置文件比程序还难破解.
Speed Download和Folx下载机制类似, 在下载bundle里都是有三个文件: 配置文件, 进度文件, 缓存文件
这是 Folx的样例包:
data.plist记录了下载进度, 比如:
这也就是断点续传的原理, 因为http协议允许我们指定下载文件的字节范围
download.plist则记录了下载的配置, 核心内容是下载url
但是单纯修改这个文件里的url似乎并不能让Folx切换下载路径, 而且更重要的是, 我卸载了Folx后再重新安装, 它居然记录了我之前的下载记录. 其实, mac的软件也不是那么绿色. 那么Folx的配置文件究竟在哪里呢?
启动活动监视器, 找到folx的进程, 我们就可以看到它打开的文件列表
~/Library/Application Support/Eltima Software/Folx 就是我们要找的. 里面的FolxData.sql文件就是它的配置文件. 这是一个sqlite文件, 推荐用 Valentina Studio 打开.
ZFOLXTASK表就是下载任务了, Folx启动实际上是从这个数据库里加载内容的, 那个download.plist似乎可有可无. 关闭Folx, 修改表里的ZURL字段就可以切换下载的url了. 当百度云盘地址失效后, 在浏览器里重新获取一次就可以了, 是不是很简便呀.