众所周知,小米手机自带一个云服务,云服务里面有一个网盘功能,其实这个网盘最早是快盘,后来被小米收购了应该。
这个网盘类似百度云网盘,但是不能对外分享,可以算是私有网盘,但是其 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
|  |      1madpecker009      2020-09-22 22:09:51 +08:00 大佬牛逼 | 
|  |      2wangbenjun5 OP 关于这个登录功能,说明一下,我是完全抓的网页端的登录接口,这块比较复杂,目前实现了登录一次,永久有效。 用户名和密码被保存在默认~/.micloud.json 文件里面,密码是加密过的,保证用户信息安全! | 
|  |      3Lemon305      2020-09-22 22:59:44 +08:00 Mac 测试可用,大佬牛逼 | 
|  |      4lxk11153      2020-09-22 23:14:56 +08:00 有 baidupcs-go 那味了 | 
|  |      5EricXuu      2020-09-22 23:26:35 +08:00 大佬,请教一下这种接口抓取有什么技巧么?不会是 network 面板一个个试出来的吧 | 
|      6dai640      2020-09-23 00:31:21 +08:00  1 小米前段时间好像还有 70 年产权的网盘售卖,如果当时小米的营销早看到 LZ 的这个项目估计会大卖了。 | 
|      7solider245      2020-09-23 06:52:33 +08:00 大佬牛逼!有空把华为网盘也弄弄,这个估计人群更大! | 
|      8a5b6c7d8      2020-09-23 07:23:59 +08:00 via Android 真不错  原来还可以这么玩啊 | 
|      9Rxianbei      2020-09-23 07:59:33 +08:00 via Android  6 @solider245 别把人往火坑里推啊兄弟,弄华为是要付出代价的啊 | 
|  |      10kokutou      2020-09-23 08:18:55 +08:00 via Android @solider245  华为估计看到就直接律师函警告。。。 | 
|  |      12zhiiker      2020-09-23 08:47:02 +08:00 via Android 不错的项目,感谢楼主 | 
|  |      13SvenKim      2020-09-23 09:10:34 +08:00 挺有意思的项目,感谢楼主 | 
|  |      14wangbenjun5 OP @techxiu224 感谢支持 | 
|  |      15wangbenjun5 OP @lxk11153 灵感来自这个项目,哈哈 | 
|  |      16wangbenjun5 OP  1 @EricXuu 没啥技巧,就是分析小米的接口,小米的登录还算简单,就是跳转有点多,不需要图形验证码,有一个手机号验证码 | 
|  |      17wangbenjun5 OP @solider245 我是米粉,哈哈 | 
|  |      18edk24      2020-09-23 09:33:56 +08:00 大佬再封装个 mv,  哈哈  改名字移动文件应该都比较常用的 | 
|      19godcc      2020-09-23 09:39:29 +08:00 大佬牛逼 | 
|      20xishijt      2020-09-23 09:45:01 +08:00 5g 的盘有啥好折腾的 | 
|      21mengzhexin      2020-09-23 10:10:46 +08:00 via Android @xishijt 开会员啊,比百度便宜 | 
|  |      22wangbenjun5 OP @xishijt 作为米粉肯定是要买会员的,白金好像是 200GB,其实并不贵。小米这个云盘和小米云服务一体的,比如同步手机照片,联系人等等。如果文件不多,放在上面还是挺靠谱的,安全可靠。 | 
|  |      23wangbenjun5 OP @edk24 好的,后续加上 | 
|  |      24mahone3297      2020-09-23 10:50:49 +08:00 我想要数据自动同步的功能。比如,本地 a 添加,自动同步到云。自动同步到本地 b 现在在用微云 百度网盘,可能为了数据安全,在云端删除,本地不会删。本地删除,云端好像也不会删。只有添加,会自动同步。 要实现上面的需求,lz 估计要写点代码,实现该需求 大家有这样的需求吗?是如何解决的? | 
|      25renmu123      2020-09-23 11:03:01 +08:00 via Android @mahone3297 这是 onedrive 杀手级功能 | 
|  |      26wangbenjun5 OP @mahone3297 你说的就是同步盘功能,类似坚果云和百度云这样的专业网盘。这块功能其实有考虑,之前小米有一个 PC 端,但是做的比较差劲,是用 js 写的,我的最终目标就是实现同步盘功能,下一步计划就做 | 
|      27solider245      2020-09-23 11:08:36 +08:00 | 
|      28kutear      2020-09-23 11:16:42 +08:00 最想要的还是微云的 cli | 
|  |      29lepig      2020-09-23 11:18:25 +08:00 感谢分享,一直想写个这种东西。参考参考 | 
|  |      30caqiko      2020-09-23 11:34:29 +08:00 大佬如果能整出一个 GUI 客户端就好了…CLI 用起来还是不方便啊 现在用的小米云服务官方客户端,主要用一个便签同步功能… | 
|  |      31lepig      2020-09-23 11:36:29 +08:00 命令行登录成功以后 咋退出啊? 撸个 exit 或者 quit 命令啊 | 
|  |      32wangbenjun5 OP @caqiko gui 太难了,我不会,以前想过用 qt 写,但是对 c++又不熟,放弃了,所以就整了个命令行版本 | 
|  |      33wangbenjun5 OP @lepig 目前是 Ctrl + d…… | 
|  |      34lepig      2020-09-23 11:40:29 +08:00 @wangbenjun5 好的 谢谢 | 
|  |      35caqiko      2020-09-23 11:43:53 +08:00 share 命令返回一个链接,复制到浏览器好像下载不了 #获取分享成功,有效期 24 小时,复制链接( http://t.wibliss.com?t=64fnl )到浏览器里面打开下载,请注意浏览器弹框! | 
|      37xylophone21      2020-09-23 11:49:29 +08:00 @renmu123 现在已经不流行 dropbox 了吗? | 
|  |      39wangbenjun5 OP @caqiko 这个下载是弹框,很多浏览器会阻止,需要允许 | 
|      40jasonqiao36      2020-09-23 12:22:49 +08:00 能下载云相册里面的照片吗 | 
|  |      41wangbenjun5 OP @jasonqiao36 暂时没有这个功能,后期准备加个 | 
|      42jasonqiao36      2020-09-23 14:27:11 +08:00 @wangbenjun5 #41 给你点个 star, 持续关注 | 
|      43breezeFP      2020-09-23 14:54:13 +08:00 工作不饱和啊 | 
|  |      44baobao1270      2020-09-23 15:22:40 +08:00 楼主可以编译出一个 DLL,把 API 暴漏出来吗 这样我可以做个 Windows 下的图形客户端出来 | 
|  |      45wangbenjun5 OP @baobao1270 不会编译,不过你要做 Windows 客户端也不难,小米的接口很简单,主要是登录,登录完成之后有一个 token,带着 token 就行了 | 
|  |      47wangbenjun5 OP |