众所周知,小米手机自带一个云服务,云服务里面有一个网盘功能,其实这个网盘最早是快盘,后来被小米收购了应该。
这个网盘类似百度云网盘,但是不能对外分享,可以算是私有网盘,但是其 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 1
小米前段时间好像还有 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 6
@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
大佬牛逼
|
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 |