V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
牛客网
wangbenjun5
V2EX  ›  程序员

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

  •  3
     
  •   wangbenjun5 · 32 天前 · 2899 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    这个网盘类似百度云网盘,但是不能对外分享,可以算是私有网盘,但是其 PC 客户端比较垃圾,是采用祖传 chrome 套壳,node 写的,效率可想而知,于是乎我就抓了小米云服务网页版( https://i.mi.com/drive#/all )的接口写个命令行终端。

    采用 100% Golang 编写,目前实现了,上传、下载、创建目录等功能,上传和下载支持异步批量模式,效率还是非常高滴!

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


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

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

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

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

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

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

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

    https://github.com/wangbjun/go-micloud/releases/tag/1.3
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2268 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 02:25 · PVG 10:25 · LAX 19:25 · JFK 22:25
    ♥ Do have faith in what you're doing.