说明:onedrivecmd
是一个OneDrive
的命令行客户端,可以直接在VPS
上对OneDrive
网盘进行上传/下载/编辑等操作,还可以直接将文件离线到网盘,支持OneDrive
个人版和商业版等,该工具和博主以前发个2
款Google Drive
命令行工具差不多,查看:skicka、Gdrive,对Google Drive
更有兴趣的可以试试。
功能
- 根据路径取文件。
- 配置文件 (
~/.onedrive.json
)。 - 可对单个文件上传下载。
- 可列远程目录,包括文件大小和时间戳。
- 上传与下载有进度条,也可用aria2进行下载。
- 离线下载(此功能仅通过API提供,Web和官方客户端都是没有的)。
- 直接获取直链!。
Python 2
和3
通用。
安装
Github地址:https://github.com/cnbeining/onedrivecmd
说明:博主使用Python 2
和3
测试了下,发现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 3
和pip3
:
#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
,可以自己设置。此文件和你的密码一样重要!泄露会导致你的盘被随便查看!
最后配置成功后,就可以使用上面的命令进行操作了。
版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!
本文链接:https://www.moerats.com/archives/717/
如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。
需要管理员批准
onedrivecmd
onedrivecmd 需要访问只有管理员才能授权的组织资源。请管理员授权使用此应用程序后,您才能使用。
我网上找的教育邮箱注册的,没有管理员账号怎么破
凉拌,或者试试免费版,不过有点小限制,但起码是管理员,https://www.moerats.com/archives/696/
博主太强了
博主有没有试过多线程,onedrive可以支持多少线程同步上传文件啊?
你可以试试这个脚本,自行测试最高线程数,https://www.moerats.com/archives/697/
怎么不支持中文?
onedrivecmd list od:/
load_entry_point('OnedriveCMD==0.1.6', 'console_scripts', 'onedrivecmd')()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>
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)
这个没测试过中文,不过好多程序都不支持中文。
相比rclone有什么优势,感觉rclone有时同步不完整,备份几千张照片时也容易卡死
而且推荐rclone官网安装最新版本,旧版本的rclone可能会有些资源占用的问题
咱个人推荐不要用rclone的挂载为vps的硬盘功能,不稳定、占用内存极大而且容易传输掉文件
最好是使用rclone copy或者rclone sync,这两个选项的占用的内存很小,咱1G内存无swap的vps都能流程跑
同步不完整,如果用的是onedrive可能是触发到了1drv的上传限制,而rclone在被拒绝后默认只会重试4次
推荐使用的时候添加参数 --low-level-retries XXXX ,XXXX是重试次数,可以有效降低文件没有同步过去的情况
真的推荐使用之前详细看一下rclone的文档,咱个人觉得rclone真心好用
https://rclone.org/docs/
你在rclone花了不少功夫。
优势估计就是配置简单,比rclone多点便捷的功能。rclone本身还是有点bug,会掉文件,你用rclone的时候试下添加足够多的Swap,看卡死的现象会不会好些。