Rat's

Onedrivecmd:OneDrive的命令行客户端,可直接上传/下载文件等
说明:onedrivecmd是一个OneDrive的命令行客户端,可以直接在VPS上对OneDrive网盘进行上传...
扫描右侧二维码阅读全文
03
2018/09

Onedrivecmd:OneDrive的命令行客户端,可直接上传/下载文件等

说明:onedrivecmd是一个OneDrive的命令行客户端,可以直接在VPS上对OneDrive网盘进行上传/下载/编辑等操作,还可以直接将文件离线到网盘,支持OneDrive个人版和商业版等,该工具和博主以前发个2Google Drive命令行工具差不多,查看:skickaGdrive,对Google Drive更有兴趣的可以试试。

功能

  • 根据路径取文件。
  • 配置文件 (~/.onedrive.json)。
  • 可对单个文件上传下载。
  • 可列远程目录,包括文件大小和时间戳。
  • 上传与下载有进度条,也可用aria2进行下载。
  • 离线下载(此功能仅通过API提供,Web和官方客户端都是没有的)。
  • 直接获取直链!。
  • Python 23通用。

安装

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

说明:博主使用Python 23测试了下,发现Python 2下会出现点小问题,不过也还是可以用的,这里建议通过Python 3安装Onedrivecmd

1、安装pip或pip3
如果你想用Python 2,一般系统都自带Python 2,可以使用以下命令安装pip

#CentOS 6.x 32位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum install -y python-pip

#CentOS 6.x 64位
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y python-pip

#CentOS 7.x
yum install -y epel-release
yum install -y python-pip
#如果CentOS 7安装出现No package python-pip available,可以用以下命令进行安装
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

#Debian/Ubuntu系统
apt-get -y update
apt-get -y install python-pip

如果你想用Python 3,可以使用以下脚本自动安装Python 3pip3

#Ubuntu很多系统自带Python 3,就不说安装方法了
#CentOS系统
wget https://www.moerats.com/usr/shell/Python3/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh
#Debian系统
wget https://www.moerats.com/usr/shell/Python3/Debian_Python3.6.sh && sh Debian_Python3.6.sh

#查看是否安装成功
python3 -V

2、安装onedrivecmd

#Python 2安装
pip install onedrivecmd

#Python 3安装
pip3 install onedrivecmd

使用

1、使用命令

#注意根目录为od:/,后面带/为目录,不带为文件
Usage onedrivecmd:
onedrivecmd -h 
onedrivecmd [OPTIONS] init 个人版登陆
onedrivecmd [OPTIONS] init_business 企业/Office 365/Education登陆
onedrivecmd [OPTIONS] list od:/foo/bar/ 列目录
onedrivecmd [OPTIONS] share od:/foo/bar/ 共享
onedrivecmd [OPTIONS] direct od:/foo/bar/ 取直链!这个直链不过期
onedrivecmd [OPTIONS] get od:/foo/file.txt /tmp/ 下载
onedrivecmd [OPTIONS] put /tmp/hello.txt od:/bar/ 上传
onedrivecmd [OPTIONS] delete od:/foo/bar 删除
onedrivecmd [OPTIONS] mkdir od:/foo/bar/ 建目录
onedrivecmd [OPTIONS] search foobar 搜索
onedrivecmd [OPTIONS] remote http://thecatapi.com/api/images/get?format=src&type=gif 离线下载
onedrivecmd [OPTIONS] quota 看容量

[OPTIONS]
-conf="~/.onedrive.json": 配置文件,此文件和密码一样重要
-h: 帮助
-hack: 用SDK上传/aria2下载
-recursive=false: 递归列目录,速度比想象中慢得多
-chunk=62914560: 上传分片大小,必须是320K的倍数,不能超过60MB
-url=False: 只列出文件下载URL,这个URL失效很快

2、使用示例
首先使用命令登录OneDrive

#个人版登录命令
onedrivecmd init

#企业/Office 365/Education登录命令
onedrivecmd init_business

然后将那串网址复制到浏览器登录账号,再将验证码输到SSH客户端确认。
请输入图片描述
注意默认配置文件是/root/.onedrive.json,可以自己设置。此文件和你的密码一样重要!泄露会导致你的盘被随便查看!

最后配置成功后,就可以使用上面的命令进行操作了。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2018 年 09 月 03 日 09 : 42 AM

发表评论

12 条评论

  1. longestWin

    需要管理员批准
    onedrivecmd
    onedrivecmd 需要访问只有管理员才能授权的组织资源。请管理员授权使用此应用程序后,您才能使用。

    我网上找的教育邮箱注册的,没有管理员账号怎么破

    1. Rat's
      @longestWin

      凉拌,或者试试免费版,不过有点小限制,但起码是管理员,https://www.moerats.com/archives/696/

  2. DeSireFire

    博主太强了

  3. 小倩

    博主有没有试过多线程,onedrive可以支持多少线程同步上传文件啊?

    1. Rat's
      @小倩

      你可以试试这个脚本,自行测试最高线程数,https://www.moerats.com/archives/697/

  4. 小东

    怎么不支持中文?

    onedrivecmd list od:/
    od:/Download/ 40767910466 2018-09-13T11:17:42.000000Z
    od:/One/ 2333130949 2018-09-13T07:26:15.000000Z
    od:/.torrent.bolt.db 262144 2018-09-14T09:00:04.000000Z
    od:/1.zip 66431264 2018-09-16T13:31:02.000000Z
    Traceback (most recent call last):
    File "/usr/local/bin/onedrivecmd", line 11, in <module>

    load_entry_point('OnedriveCMD==0.1.6', 'console_scripts', 'onedrivecmd')()

    File "/usr/local/lib/python3.6/site-packages/onedrivecmd/onedrivecmd.py", line 64, in main

    do_list(client, args)

    File "/usr/local/lib/python3.6/site-packages/onedrivecmd/utils/actions.py", line 349, in do_list

    created_date_time = created_date_time))

    UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-7: ordinal not in range(128)

    1. Rat's
      @小东

      这个没测试过中文,不过好多程序都不支持中文。

  5. haha

    相比rclone有什么优势,感觉rclone有时同步不完整,备份几千张照片时也容易卡死

    1. SCGabriel
      @haha

      而且推荐rclone官网安装最新版本,旧版本的rclone可能会有些资源占用的问题

    2. SCGabriel
      @haha

      咱个人推荐不要用rclone的挂载为vps的硬盘功能,不稳定、占用内存极大而且容易传输掉文件
      最好是使用rclone copy或者rclone sync,这两个选项的占用的内存很小,咱1G内存无swap的vps都能流程跑
      同步不完整,如果用的是onedrive可能是触发到了1drv的上传限制,而rclone在被拒绝后默认只会重试4次
      推荐使用的时候添加参数 --low-level-retries XXXX ,XXXX是重试次数,可以有效降低文件没有同步过去的情况
      真的推荐使用之前详细看一下rclone的文档,咱个人觉得rclone真心好用
      https://rclone.org/docs/

      1. Rat's
        @SCGabriel

        你在rclone花了不少功夫。

    3. Rat's
      @haha

      优势估计就是配置简单,比rclone多点便捷的功能。rclone本身还是有点bug,会掉文件,你用rclone的时候试下添加足够多的Swap,看卡死的现象会不会好些。