
众所周知,小米手机自带一个云服务,云服务里面有一个网盘功能,其实这个网盘最早是快盘,后来被小米收购了应该。
这个网盘类似百度云网盘,但是不能对外分享,可以算是私有网盘,但是其 PC 客户端比较垃圾,是采用祖传 chrome 套壳,node 写的,效率可想而知,于是乎我就抓了小米云服务网页版( https://i.mi.com/drive#/all )的接口写个命令行终端。
采用 100% Golang 编写,目前实现了,上传、下载、创建目录等功能,上传和下载支持异步批量模式,效率还是非常高滴!
Go@MiCloud:$ NAME: main - MiCloud Third Party Console Client Written By Golang USAGE: main command [command options] [arguments...] COMMANDS: login 登录小米云服务账号 ls 列表当前目录所有文件和文件夹 download 下载文件或者文件夹 cd 改变当前目录,例如:cd movies upload 上传文件或者文件夹 share 获取一个公共分享链接 rm 删除文件或者文件夹,即放入回收站 mkdir 创建目录 tree 打印树型目录结构 jobs 展示后台当前所有下载和上传任务 help, h Shows a list of commands or help for one command OPTIONS: --help, -h show help (default: false) --version, -v print the version (default: false) 其中有一个独家功能(命令 share ),可以把网盘里面的文件生成一个公开的分享链接,提供给非小米登录用户下载,变相实现共享功能,小米这个网盘比百度云快多了,下载基本上能达到慢速。
感兴趣的可以试试!
https://github.com/wangbjun/go-micloud/blob/master/README.md
试用可点击下载编译好的执行文件: https://github.com/wangbjun/go-micloud/releases/tag/1.2
1 madpecker009 2020-09-22 22:09:51 +08:00 大佬牛逼 |
2 wangbenjun5 OP 关于这个登录功能,说明一下,我是完全抓的网页端的登录接口,这块比较复杂,目前实现了登录一次,永久有效。 用户名和密码被保存在默认~/.micloud.json 文件里面,密码是加密过的,保证用户信息安全! |
3 Lemon305 2020-09-22 22:59:44 +08:00 Mac 测试可用,大佬牛逼 |
4 lxk11153 2020-09-22 23:14:56 +08:00 有 baidupcs-go 那味了 |
5 EricXuu 2020-09-22 23:26:35 +08:00 大佬,请教一下这种接口抓取有什么技巧么?不会是 network 面板一个个试出来的吧 |
6 dai640 2020-09-23 00:31:21 +08:00 小米前段时间好像还有 70 年产权的网盘售卖,如果当时小米的营销早看到 LZ 的这个项目估计会大卖了。 |
7 solider245 2020-09-23 06:52:33 +08:00 大佬牛逼!有空把华为网盘也弄弄,这个估计人群更大! |
8 a5b6c7d8 2020-09-23 07:23:59 +08:00 via Android 真不错 原来还可以这么玩啊 |
9 Rxianbei 2020-09-23 07:59:33 +08:00 via Android @solider245 别把人往火坑里推啊兄弟,弄华为是要付出代价的啊 |
10 kokutou 2020-09-23 08:18:55 +08:00 via Android @solider245 华为估计看到就直接律师函警告。。。 |
12 zhiiker 2020-09-23 08:47:02 +08:00 via Android 不错的项目,感谢楼主 |
13 SvenKim 2020-09-23 09:10:34 +08:00 挺有意思的项目,感谢楼主 |
14 wangbenjun5 OP @techxiu224 感谢支持 |
15 wangbenjun5 OP @lxk11153 灵感来自这个项目,哈哈 |
16 wangbenjun5 OP @EricXuu 没啥技巧,就是分析小米的接口,小米的登录还算简单,就是跳转有点多,不需要图形验证码,有一个手机号验证码 |
17 wangbenjun5 OP @solider245 我是米粉,哈哈 |
18 edk24 2020-09-23 09:33:56 +08:00 大佬再封装个 mv, 哈哈 改名字移动文件应该都比较常用的 |
19 godcc 2020-09-23 09:39:29 +08:00 大佬牛逼 |
&nbp; 20 xishijt 2020-09-23 09:45:01 +08:00 5g 的盘有啥好折腾的 |
21 mengzhexin 2020-09-23 10:10:46 +08:00 via Android @xishijt 开会员啊,比百度便宜 |
22 wangbenjun5 OP @xishijt 作为米粉肯定是要买会员的,白金好像是 200GB,其实并不贵。小米这个云盘和小米云服务一体的,比如同步手机照片,联系人等等。如果文件不多,放在上面还是挺靠谱的,安全可靠。 |
23 wangbenjun5 OP @edk24 好的,后续加上 |
24 mahone3297 2020-09-23 10:50:49 +08:00 我想要数据自动同步的功能。比如,本地 a 添加,自动同步到云。自动同步到本地 b 现在在用微云 百度网盘,可能为了数据安全,在云端删除,本地不会删。本地删除,云端好像也不会删。只有添加,会自动同步。 要实现上面的需求,lz 估计要写点代码,实现该需求 大家有这样的需求吗?是如何解决的? |
25 renmu123 2020-09-23 11:03:01 +08:00 via Android @mahone3297 这是 onedrive 杀手级功能 |
26 wangbenjun5 OP @mahone3297 你说的就是同步盘功能,类似坚果云和百度云这样的专业网盘。这块功能其实有考虑,之前小米有一个 PC 端,但是做的比较差劲,是用 js 写的,我的最终目标就是实现同步盘功能,下一步计划就做 |
27 solider245 2020-09-23 11:08:36 +08:00 |
28 kutear 2020-09-23 11:16:42 +08:00 最想要的还是微云的 cli |
29 lepig 2020-09-23 11:18:25 +08:00 感谢分享,一直想写个这种东西。参考参考 |
30 caqiko 2020-09-23 11:34:29 +08:00 大佬如果能整出一个 GUI 客户端就好了…CLI 用起来还是不方便啊 现在用的小米云服务官方客户端,主要用一个便签同步功能… |
31 lepig 2020-09-23 11:36:29 +08:00 命令行登录成功以后 咋退出啊? 撸个 exit 或者 quit 命令啊 |
32 wangbenjun5 OP @caqiko gui 太难了,我不会,以前想过用 qt 写,但是对 c++又不熟,放弃了,所以就整了个命令行版本 |
33 wangbenjun5 OP @lepig 目前是 Ctrl + d…… |
34 lepig 2020-09-23 11:40:29 +08:00 @wangbenjun5 好的 谢谢 |
35 caqiko 2020-09-23 11:43:53 +08:00 share 命令返回一个链接,复制到浏览器好像下载不了 #获取分享成功,有效期 24 小时,复制链接( http://t.wibliss.com?t=64fnl )到浏览器里面打开下载,请注意浏览器弹框! |
37 xylophone21 2020-09-23 11:49:29 +08:00 @renmu123 现在已经不流行 dropbox 了吗? |
39 wangbenjun5 OP @caqiko 这个下载是弹框,很多浏览器会阻止,需要允许 |
40 jasonqiao36 2020-09-23 12:22:49 +08:00 能下载云相册里面的照片吗 |
41 wangbenjun5 OP @jasonqiao36 暂时没有这个功能,后期准备加个 |
42 jasonqiao36 2020-09-23 14:27:11 +08:00 @wangbenjun5 #41 给你点个 star, 持续关注 |
43 breezeFP 2020-09-23 14:54:13 +08:00 工作不饱和啊 |
44 baobao1270 2020-09-23 15:22:40 +08:00 楼主可以编译出一个 DLL,把 API 暴漏出来吗 这样我可以做个 Windows 下的图形客户端出来 |
45 wangbenjun5 OP @baobao1270 不会编译,不过你要做 Windows 客户端也不难,小米的接口很简单,主要是登录,登录完成之后有一个 token,带着 token 就行了 |
47 wangbenjun5 OP |