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

2016-09-25 13:15:36 +08:00
 cnbeining

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

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

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

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

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

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

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

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

下一步要写的:

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

极度欢迎 star fork 和 issue 。

9152 次点击
所在节点    分享创造
14 条回复
designer
2016-09-25 14:24:50 +08:00
OneDrive 用户。
虽然 CMD 不使用也来支持一下。
ossphil
2016-09-25 14:55:13 +08:00
赞! onedrive 相对其他网盘的优势就是国内客户端可用+office 365 用户有 1T 的空间,不敢想啥自行车了
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
2016-09-25 16:10:26 +08:00
Ubuntu Gnome 16.04
EricCartman
2016-09-25 16:20:37 +08:00
可以了,感觉路径识别有点问题,配置文件放当前目录下就行了
cnbeining
2016-09-27 11:55:41 +08:00
@ossphil 支持 Office 365 了。


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

配置文件整个改了,这次升级需要重新 init 。
ershiwo
2016-09-27 22:45:02 +08:00
Windows 用户过来顶一下。文件占位符功能(现在叫 On-Demand Sync )就要回来了,这个才是极好的。
abmin521
2016-10-07 20:26:45 +08:00
cnbeining
2016-10-08 06:49:18 +08:00
@abmin521 就是因为这个东西是老 API 注释语焉不详 我才自己动手的。
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
2017-11-27 14:33:17 +08:00
楼主还在么
https://github.com/skilion/onedrive/issues/244

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

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

明白了原来要用这个
onedrivecmd init_business
asuraa
2017-11-27 15:45:25 +08:00
@cnbeining 不能批量同步啊 我自己注册的 azure 不能用 rclone 妈蛋好像 azure 的 api 又变了 授权就显示发生错误

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/308818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX