0x00.起因
庚子鼠年,响应国家号召宅在家里,可是没有各大视频会员的加持,看着手里媳妇办的百度超会,只能暗暗咬牙,倒是可以在线播放,但是不支持TV端,而且APP投屏功能那做的叫一个烂。
要是能把网盘的东西睡觉的时候下载到我的小米路由里该多好啊(记得之前官方还是支持这个插件的,但是后来就分家了),心动不如行动。
我这里的型号是小米路由R1D,最新的已经出到了R3D,产品名称是【小米路由HD】,据说最大支持到8TB硬盘。
0x01.搜索
BaiduPCS-Go这个项目吸引了我的眼球,还有大神将其封装成了BaiduPCS-Web,装完了是这个样子。
0x03.动手
首先,得获取小米路由的ssh访问权限,参考的:《小米路由开启SSH访问权限》
经过测试,虽然ssh服务监听在0.0.0.0上,但是通过外网IP地址是无法访问的,给研发团队点个赞
接下来,到作者的github主页,下载release版本,适用于小米R1D的是BaiduPCS-Go-3.7.0-linux-arm.zip。额,访问这个需要【科学上网】。
吐槽一句,TC连github都拦,也是醉了。
这里有一篇作者的教程,供参考,https://w.url.cn/s/AdjX09Y
之后尝试适用pscp和xftp将可执行程序上传到路由器,结果居然都!不!行!还好我可以用共享文件夹。
按照作者的教程,直接运行,访问http://192.168.31.1:5299/,BINGO!
这个经过我的测试,填写我的百度网盘账号口令,一直登陆不上,结果尝试了BDUSS的登陆方式,登上了,如何获取BDUSS,参考这里
测试下载,默认路径是/root/Downloads,结果该路径是只读,页面右上角个人->设置,可以将路径改为路由自带硬盘路径。
结果,改完目录,又遇到了【x509: failed to load system roots and no roots provided】的错误,这个错解决了好久。是go语言的问题,又装ca-certificates更新包,又一顿排查。最后想由于BaiduPCS-Web调用了BaiduPCS-Go,不如去作者项目issue看一眼吧,果然有解决,但你这解决方案有点回避问题啊。
于是修改配置文件pcs_config.json,将enable_https改为false,其实后来知道,修改下载路径那里,也可以修改这个参数……
尝试个下载,成功。
搞定收工。
最后,在小米理由的/etc/rc.local文件中,exit前面加上运行命令行,每次随系统启动。
0x04.存在问题
1、每次都得重新登录,不知道是不是只有我这里这样,BDUSS难记,只能存在电子备忘录里。
2、由于是以websocket实现,不知道是不是这个原因,刷新页面后(随便点之后切换回来可以)下载列表中的文件全消失,不知道进度或者有没有下载成功。
3、尚未摸清如何外网开端口,实现远处挂机。
0x05.工具的下载链接
链接: https://pan.baidu.com/s/1mlefRJ3oMcOg8F71ak0UKw 提取码: xi29