一.介绍
OneDrive的SDK在前阵子(挺久了其实)有过一次大升级,使得很多远古时代的工具都用不了了(而且那些以前也支持个人版OneDrive,不适用于特殊版本),在新SDK发布后的几个月内(因为我记得是逐步发布的各语言SDK),一直没出现啥好的工具。然后问题是我还搞了个容量贼大的OneDrive,这就很浪费……
本来想自己撸个出来的,但是一直都懒,所以拖啊拖的,终于在某次刷V2的过程中发现有人造出轮子 ——> 传送门 来了,美滋滋哦。我一开始是观望的(其实是防止收藏夹里忘了),后来发现它的功能基本上都完善了,才想起来可以拿来用了。
其实吧,OneDrive比起Google Drive唯一的好处是它能在国内正常访问,虽然由于辣鸡巨硬分配的撒比CDN导致速度日常尴尬,但起码能用不是吗。不过丢到服务器上用的话还是可以的。
二.安装配置
因为是用Python写的,所以天生自带跨平台支持,美滋滋
yum install git -y git clone https://github.com/cnbeining/onedrivecmd wget https://bootstrap.pypa.io/get-pip.py python get-pip.py rm -rf get-pip.py cd onedrivecmd pip install -r requirments.txt chmod +x onedrivecmd.py ln -s $(pwd)/onedrivecmd.py /usr/bin/onedrivecmd
然后就能用了,因为用了软链接,所以别把之前的那个文件夹删掉哦
首先还是得和你的微软账号关联一下,或者说登陆?
#个人账号使用 onedrivecmd init #企业版或者Office365版使用 onedrivecmd init_business
然后还是那个套路,跳一个网址,粘贴到浏览器并登陆
然后会提示下图,点击确认后会返回作者自己的一个网站,用于呈现认证码
全部复制(别带多的空格啥的),然后粘贴回车,即可完成登陆
登陆信息会被保存到你运行程序的当前目录的onedrive.json文件中,请之后在同一目录执行命令或指定该文件位置
比如这样
onedrivecmd -conf /root/onedrive.json
当然你也可以搞个alias,命令如下(设置后需要重新登录下)
echo "alias odcmd='onedrivecmd -conf /root/onedrive.json'" >> ~/.bashrc
三.操作
现在就能正常使用了
#查看配额(容量和占用) odcmd quota #列目录 odcmd list od:/onedrive/path #创建目录 odcmd mkdir od:/onedrive/path #上传文件(这部分好像有bug,部分情况下不能直接传到指定目录,只能根目录) odcmd put /path/to/file od:/onedrive/path #删除文件(移动到垃圾箱) odcmd delete od:/onedrive/path #下载文件(别带本地目录,不好用) odcmd get od:/onedrive/path #远程下载(下载指定url的文件到OneDrive中) odcmd remote "remote_url"
基本就这样吧,虽然大体上正常,但是还是有点小缺陷,以后看看能不能找到更好用的
另外,这玩意支持分片和调用aria2c,分别是(-chunk和-hack参数,aria2需要你自己装好)
文章评论
#企业版或者Office365版使用
onedrivecmd init business
这里错啦!少了个下划线……搞得我还白用学校邮箱注册了下live账号……结果原来是因为少了个下划线被识别成了普通的init!!
应该是init_business
@才不喜欢你呢 额,好像是少了。。。
@Senra 我是Onedrivecmd的作者。
这个变化来自于一个跨版本bug 为了支持多个平台 不得不改一下语法。
现在安装简单的多:pip3 install onedrivecmd 即可。
之前忘记复用session导致上传下载速度慢:已经修了。用aria2也可以 这个功能主要用于外链和直链。同时我把默认分片调到最高限度 便于跑满服务器。家用请酌情调整。
那个网站纯粹为了方便copy 不存在安全性问题:静态站 丢Github pages的。
有问题欢迎开issue或邮件。虽然我自己用的并不多(搞了个Google Drive) 但是有问题应该不会弃坑 我自己感觉代码和注释写的比较好维护。。