V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cnbeining
V2EX  ›  分享创造

onedrivecmd - 全平台的 Onedrive 命令行客户端

  •  1
     
  •   cnbeining · 2016-09-25 13:15:36 +08:00 · 9120 次点击
    这是一个创建于 2981 天前的主题,其中的信息可能已经有所发展或是发生改变。

    突然发现,主流网盘几乎都有命令行客户端,但是 Onedrive 竟然没有。

    唯一 Linux 下有的是个同步客户端:但是我服务器要有那么大硬盘还扯啥云存储啊。

    正好 Onedrive 要换成新版 API ,乘机用 SDK 撸一个。

    照 megacmd 扒的功能,偶尔有点不一样。

    说明里列出的功能都是好的。和 megacmd 比较,没列出的功能就是没写好或者写好了不怎么好使的或者限于 SDK/API 限制这事没法做的。

    Python 撸的,讲道理不应该挑 Python 版本和平台(虽然我主要在 2.7 下测试),但是注意下载时暂时需要用 aria2 才能看见进度条。以后有可能会撸一个带进度条的简易下载器替代掉 SDK 内置的下载,如果有好的这种项目欢迎推荐。

    比 Web 版多了离线下载功能,当然不带秒传的那种。

    服务器可以把上传分片开大以疯狂加速(默认 10MiB ),但是 API 限制不能超过 60MiB 一片,应该近乎跑满 G 口轻松加愉快了。

    下一步要写的:

    • move 暂时不好使呢

    • 递归列目录不知道哪写错了,半夜 3 点多也无心 debug 了

    • sync 没想好怎么写才能不慢的要死,求思路

    • 别的我也不知道这样一个客户端还需要什么了。

    Github : https://github.com/cnbeining/onedrivecmd

    极度欢迎 star fork 和 issue 。

    第 1 条附言  ·  2016-09-27 11:54:23 +08:00
    加上中文文档,支持 Office 365 了。

    同步我不是很关心,等谁提 PR 。

    别的 bug 都比较小,慢慢修。

    欢迎 star 和 fork ,丢 issue 和 PR 来吧。
    14 条回复    2017-11-27 15:45:25 +08:00
    designer
        1
    designer  
       2016-09-25 14:24:50 +08:00
    OneDrive 用户。
    虽然 CMD 不使用也来支持一下。
    ossphil
        2
    ossphil  
       2016-09-25 14:55:13 +08:00 via Android
    赞! onedrive 相对其他网盘的优势就是国内客户端可用+office 365 用户有 1T 的空间,不敢想啥自行车了
    EricCartman
        3
    EricCartman  
       2016-09-25 16:10:08 +08:00
    Traceback (most recent call last):
    File "onedrivecmd.py", line 75, in <module>
    main()
    File "onedrivecmd.py", line 44, in main
    save_session(client, path = args.conf)
    File "/home/xxx/software/onedrivecmd/utils/session.py", line 47, in save_session
    client.auth_provider.save_session(path = path)
    File "/home/xxx/.local/lib/python2.7/site-packages/onedrivesdk/auth_provider.py", line 314, in save_session
    self._session.save_session(**save_session_kwargs)
    File "/home/xxx/.local/lib/python2.7/site-packages/onedrivesdk/session.py", line 84, in save_session
    with open(path, "wb") as session_file:
    IOError: [Errno 2] No such file or directory: '~/onedrive.pickle'
    EricCartman
        4
    EricCartman  
       2016-09-25 16:10:26 +08:00
    Ubuntu Gnome 16.04
    EricCartman
        5
    EricCartman  
       2016-09-25 16:20:37 +08:00
    可以了,感觉路径识别有点问题,配置文件放当前目录下就行了
    cnbeining
        6
    cnbeining  
    OP
       2016-09-27 11:55:41 +08:00
    @ossphil 支持 Office 365 了。


    @EricCartman 我也不知道为什么就死活不能这样做,所以干脆把默认位置换成当前目录了。

    配置文件整个改了,这次升级需要重新 init 。
    ershiwo
        7
    ershiwo  
       2016-09-27 22:45:02 +08:00
    Windows 用户过来顶一下。文件占位符功能(现在叫 On-Demand Sync )就要回来了,这个才是极好的。
    abmin521
        8
    abmin521  
       2016-10-07 20:26:45 +08:00
    cnbeining
        9
    cnbeining  
    OP
       2016-10-08 06:49:18 +08:00
    @abmin521 就是因为这个东西是老 API 注释语焉不详 我才自己动手的。
    geelaw
        10
    geelaw  
       2017-04-24 05:08:28 +08:00
    我之前为了整理照片写过一段专门用来整理照片的,刚好有 recursive 下载文件夹的框架和 move 的命令,希望能对你有帮助

    https://github.com/GeeLaw/1drv-layout

    我个人对( either repo 的) star 和 fork 没什么兴趣。但是如果你觉得有用,并进一步产生兴趣,您可以移步相关的一篇博文 https://geelaw.blog/entries/homemade-1drv-layout/

    @ershiwo 如果你等不及 On-Demand Sync 也可以来看看土法炮制的用类似占位符机制做的整理照片的工具。
    asuraa
        11
    asuraa  
       2017-11-27 14:33:17 +08:00
    楼主还在么
    https://github.com/skilion/onedrive/issues/244

    Onedrive for Business 好像不可以呀
    cnbeining
        12
    cnbeining  
    OP
       2017-11-27 15:21:15 +08:00
    @luodaoyi 我无法对其他人的 repo 负责,请联系原 repo 的开发者。

    onedrivecmd 肯定是可以在 Business 用的,毫无疑问,久经测试。
    asuraa
        13
    asuraa  
       2017-11-27 15:24:25 +08:00
    @cnbeining

    明白了原来要用这个
    onedrivecmd init_business
    asuraa
        14
    asuraa  
       2017-11-27 15:45:25 +08:00
    @cnbeining 不能批量同步啊 我自己注册的 azure 不能用 rclone 妈蛋好像 azure 的 api 又变了 授权就显示发生错误
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:30 · PVG 02:30 · LAX 10:30 · JFK 13:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.