无聊写了一个小米网盘服务的命令行终端 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
wangbenjun5

无聊写了一个小米网盘服务的命令行终端

  •  3
     
  •   wangbenjun5 Sep 22, 2020 6024 views
    This topic created in 2044 days ago, the information mentioned may be changed or developed.

    众所周知,小米手机自带一个云服务,云服务里面有一个网盘功能,其实这个网盘最早是快盘,后来被小米收购了应该。

    这个网盘类似百度云网盘,但是不能对外分享,可以算是私有网盘,但是其 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

    Supplement 1    Sep 23, 2020
    刚小米的童鞋找到要了个小米 ID,给我送了 2 年钻石会员……感谢!
    本人算是骨灰米粉了,去年就弄了第一个版本,后来过了很久没搞,最近想起来又接着搞了,一方面是自己有这个需求,小米没什么好用的客户端,另一方面也是为了练练 golang 开发。
    如果非要说小米这个网盘优点,只有一个: 速度比较快,我家 200M 的电信网速可以拉满……


    号外,小米的童鞋告诉我他们已经有 Windows 工程师了,估计未来不久原生客户端就会推出了。
    Supplement 2    Sep 26, 2020
    最新的版本新增了相册下载功能,可以下载小米手机云服务所有相册,便于本地备份:

    https://github.com/wangbjun/go-micloud/releases/tag/1.3
    47 replies    2020-09-26 18:26:32 +08:00
    madpecker009
        1
    madpecker009  
       Sep 22, 2020
    大佬牛逼
    wangbenjun5
        2
    wangbenjun5  
    OP
       Sep 22, 2020
    关于这个登录功能,说明一下,我是完全抓的网页端的登录接口,这块比较复杂,目前实现了登录一次,永久有效。

    用户名和密码被保存在默认~/.micloud.json 文件里面,密码是加密过的,保证用户信息安全!
    Lemon305
        3
    Lemon305  
       Sep 22, 2020
    Mac 测试可用,大佬牛逼
    lxk11153
        4
    lxk11153  
       Sep 22, 2020
    有 baidupcs-go 那味了
    EricXuu
        5
    EricXuu  
       Sep 22, 2020
    大佬,请教一下这种接口抓取有什么技巧么?不会是 network 面板一个个试出来的吧
    dai640
        6
    dai640  
       Sep 23, 2020   1
    小米前段时间好像还有 70 年产权的网盘售卖,如果当时小米的营销早看到 LZ 的这个项目估计会大卖了。
    solider245
        7
    solider245  
       Sep 23, 2020
    大佬牛逼!有空把华为网盘也弄弄,这个估计人群更大!
    a5b6c7d8
        8
    a5b6c7d8  
       Sep 23, 2020 via Androd
    真不错 原来还可以这么玩啊
    Rxianbei
        9
    Rxianbei  
       Sep 23, 2020 via Android   6
    @solider245 别把人往火坑里推啊兄弟,弄华为是要付出代价的啊
    kokutou
        10
    kokutou  
       Sep 23, 2020 via Android
    @solider245
    华为估计看到就直接律师函警告。。。
    liukangxu
        11
    liukangxu  
       Sep 23, 2020
    @kokutou 律师函?那是南山必胜客的玩法,牢厂自然是 251 走起
    zhiiker
        12
    zhiiker  
       Sep 23, 2020 via Android
    不错的项目,感谢楼主
    SvenKim
        13
    SvenKim  
       Sep 23, 2020
    挺有意思的项目,感谢楼主
    wangbenjun5
        14
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @techxiu224 感谢支持
    wangbenjun5
        15
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @lxk11153 灵感来自这个项目,哈哈
        16
    wangbenjun5  
    OP
       Sep 23, 2020 via Android   1
    @EricXuu 没啥技巧,就是分析小米的接口,小米的登录还算简单,就是跳转有点多,不需要图形验证码,有一个手机号验证码
    wangbenjun5
    wangbenjun5
        17
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @solider245 我是米粉,哈哈
    edk24
        18
    edk24  
       Sep 23, 2020
    大佬再封装个 mv, 哈哈 改名字移动文件应该都比较常用的
    godcc
        19
    godcc  
       Sep 23, 2020
    大佬牛逼
    xishijt
        20
    xishijt  
       Sep 23, 2020
    5g 的盘有啥好折腾的
    mengzhexin
        21
    mengzhexin  
       Sep 23, 2020 via Android
    @xishijt 开会员啊,比百度便宜
    wangbenjun5
        22
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @xishijt 作为米粉肯定是要买会员的,白金好像是 200GB,其实并不贵。小米这个云盘和小米云服务一体的,比如同步手机照片,联系人等等。如果文件不多,放在上面还是挺靠谱的,安全可靠。
    wangbenjun5
        23
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @edk24 好的,后续加上
    mahone3297
        24
    mahone3297  
       Sep 23, 2020
    我想要数据自动同步的功能。比如,本地 a 添加,自动同步到云。自动同步到本地 b
    现在在用微云
    百度网盘,可能为了数据安全,在云端删除,本地不会删。本地删除,云端好像也不会删。只有添加,会自动同步。

    要实现上面的需求,lz 估计要写点代码,实现该需求

    大家有这样的需求吗?是如何解决的?
    renmu123
        25
    renmu123  
       Sep 23, 2020 via Android
    @mahone3297 这是 onedrive 杀手级功能
    wangbenjun5
        26
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @mahone3297 你说的就是同步盘功能,类似坚果云和百度云这样的专业网盘。这块功能其实有考虑,之前小米有一个 PC 端,但是做的比较差劲,是用 js 写的,我的最终目标就是实现同步盘功能,下一步计划就做
    solider245
        27
    solider245  
       Sep 23, 2020
    @kokutou 这个不涉及到盗用,你做个客户端,相当于是帮他宣传,完全没问题呀。
    @mahone3297 你这个需求最好是自己搭,要方便不少。
    @xishijt 5G 放文件应该挺方便了吧?
    kutear
        28
    kutear  
       Sep 23, 2020
    最想要的还是微云的 cli
    lepig
        29
    lepig  
       Sep 23, 2020
    感谢分享,一直想写个这种东西。参考参考
    caqiko
        30
    caqiko  
       Sep 23, 2020
    大佬如果能整出一个 GUI 客户端就好了…CLI 用起来还是不方便啊

    现在用的小米云服务官方客户端,主要用一个便签同步功能…
    lepig
        31
    lepig  
       Sep 23, 2020
    命令行登录成功以后 咋退出啊?
    撸个 exit 或者 quit 命令啊
    wangbenjun5
        32
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @caqiko gui 太难了,我不会,以前想过用 qt 写,但是对 c++又不熟,放弃了,所以就整了个命令行版本
    wangbenjun5
        33
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @lepig 目前是 Ctrl + d……
    lepig
        34
    lepig  
       Sep 23, 2020
    @wangbenjun5 好的 谢谢
    caqiko
        35
    caqiko  
       Sep 23, 2020
    share 命令返回一个链接,复制到浏览器好像下载不了

    #获取分享成功,有效期 24 小时,复制链接( http://t.wibliss.com?t=64fnl )到浏览器里面打开下载,请注意浏览器弹框!
    caqiko
        36
    caqiko  
       Sep 23, 2020
    @caqiko 可以下载了…
    xylophone21
        37
    xylophone21  
       Sep 23, 2020
    @renmu123 现在已经不流行 dropbox 了吗?
    yumenawei
        38
    yumenawei  
       Sep 23, 2020
    @caqiko #35 我打开连接可以下载啊,是个 .ps1 的文件
    wangbenjun5
        39
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @caqiko 这个下载是弹框,很多浏览器会阻止,需要允许
    Qyroth
        40
    Qyroth  
       Sep 23, 2020
    能下载云相册里面的照片吗
    wangbenjun5
        41
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @jasonqiao36 暂时没有这个功能,后期准备加个
    Qyroth
        42
    Qyroth  
       Sep 23, 2020
    @wangbenjun5 #41 给你点个 star, 持续关注
    breezeFP
        43
    breezeFP  
       Sep 23, 2020
    工作不饱和啊
    baobao1270
        44
    baobao1270  
       Sep 23, 2020
    楼主可以编译出一个 DLL,把 API 暴漏出来吗
    这样我可以做个 Windows 下的图形客户端出来
    wangbenjun5
        45
    wangbenjun5  
    OP
       Sep 23, 2020 via Android
    @baobao1270 不会编译,不过你要做 Windows 客户端也不难,小米的接口很简单,主要是登录,登录完成之后有一个 token,带着 token 就行了
    yingqi7
        46
    yingqi7  
       Sep 23, 2020 via iPhone
    @liukangxu 自己人才 251,外人直接律师函一条龙服务
    wangbenjun5
        47
    wangbenjun5  
    OP
       Sep 26, 2020
    最新的版本新增了相册下载功能,可以下载小米手机云服务所有相册,便于本地备份:

    https://github.com/wangbjun/go-micloud/releases/tag/1.3
    About     Help     Advertise     Blog     API     FAQ     Solana     3322 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 126ms UTC 12:10 PVG 20:10 LAX 05:10 JFK 08:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86