Rclone配置Onedrive过程
标题:使用rlcone挂载onedrive网盘
前言
我的VPS使用的是Debian,记录了挂载onedrive云盘的详细过程,包括申请api,获取token中遇到的坑
前几天通过微软E5搞了一个开发者账号,拥有5T的onedrive网盘,想着这么大的云盘没有离线下载功能可惜了,便从buymv那里搞了一台没有流量限制的vps,使用vps+aria2dash+rclone搭建一个离线下载服务器。
rclone支持数十款网络热门云盘的挂载,将云盘挂载到本地后可以很方便的进行文件管理,比如复制到本地挂载目录即可上传到云盘,移出即可下载。rclone的挂载还是相对简单的,本篇文章 用于记录当时经历的一些坑,方便以后参考。
安装
Rclone的
1.一键脚本
官网依旧提供了测试版的一键安装脚本,以下为正式版的安装命令:
curl https://rclone.org/install.sh | sudo bash
2.配置文件
终端输入rclone config
进行配置
➜ ~ rclone config
Current remotes:
Name Type
==== ====
onedrive onedrive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
我由于已经创建过一个了,所以在顶端回显示已经创建的名称和厂商
键入n
以创建新的远程配置,并在name
中输入方便区分的名称
之后就可以选择要挂载的类型,现在一共有四十多种, Microsoft OneDrive
在27号所以键入27
(这个序号是会变的,所以要自己找到对应的序号)
...
27 / Microsoft OneDrive
\ "onedrive"
...
Storage> 27
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
接下来输入的client_id
和client_secret
就需要自己获取了,下面有相对完整的过程
3.获取Onedrive的client_id和client_secret
进入
名称随意,但是第二项一定要选择任何组织目中的账户和个人账户
,这个选项不一定会在第三个,也要看清楚选择
重定向URL选择Web,并且URL填http://localhost:53682/
,注册即可
进入到应用到中首页右侧概要下第一个应用程序(客户端) ID
便是client_id
,接下来获取client_secret
在左侧菜单栏证书与密码
页面中选择新建客户端密码
,说明随意,时间选择最长的24月
之后会出现刚刚新建的客户端密码,记录下值
(切记不是机密ID,并且此值智慧显示一次),这便是client_secret
但还没有结束,在左侧菜单栏中选择API权限
,添加权限- Microsoft Graph-委托的权限,找到Files
相关的权限全钩上(或者根据自己的需要选择),之后关于获取api方面的事情全部结束
4.获取Token
填入client_id
和client_secret
后会需要选择onedrive地区,这个也很好分辨,onedrive管理页面url顶级域名为com即是Global
接下来第一个配置选择no
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n>
第二个配置项如果也选no,然后rclone会要求你在本机上安装rclone,根据他的流程来获取code并复制到shell中,我当初这里老是失败,我便用了另一种方法(获取code的方法在rclone官网上有详细的流程,由于我并没有使用,所以不在此赘述),在本机上配置好后使用scp将配置文件复制到服务器上。
另一个需要注意的点是只有onedrive需要这样获取token,Googledrive要更方便一点,选no后会提供一个链接,或许code复制到shell中即可,以后可能会提到
在本机上重新走一遍上面的安装流程,在获取第二个配置项Use auto config?
选yes,rclone会完成大部分工作,本人只需登陆一下并授权即可

4.配置尾声
后面配置根据提示选择type,挂载目录就完成了
使用rclone config file
获取配置文件路径,并使用scp
复制到VPS上
注:vps上也需要有相对应的目录scp才能复制成功,只需也运行rclone config
,到client_id
和client_secret
那一步直接回车再退出即可
➜ ~ rclone config file
Configuration file is stored at:
/Users/bailu/.config/rclone/rclone.conf
➜ ~
挂载和常用命令
事先需要安装依赖fuse
apt-get update && apt-get install -y fuse
首先需要创建一个用于挂载的本地目录
mkdir /Onedrive
使用mount挂载为本地磁盘:
rclone mount Onedrive:/ /Onedrive --copy-links --allow-other --allow-non-empty --umask 000 --daemon
根据自己的情况修改mount后的参数,Onedrive:/
指的是本地配置文件中Onedrive的根目录,挂载到/Onedrive
下,挂载完成后使用df -h
即可查看到新挂载的云盘
move和sync
挂载完成后并没有结束,我发现如果直接让aria2下载到挂载的硬盘中会出现文件系统错误(17)
,修改了aria2中切片类型也没有效果,那还是只能先下载到服务器硬盘中再上传了,这样的坏处是我的VPS只有可怜的20G硬盘,所以不能下载超过20G的资源,buymv的储存块蹲了老长时间也没抢到货,寄!
rclone move
和sync
的唯一区别是,move
在移到云端后本地并不会留下原始文件,相当于剪切,而sync
则相当于复制,上传成功后在本地会留下原始文件,使用事例如下
rclone move /xxx/xxx Onedrive:/download/
在aria2中配置下载完成后运行sh脚本即可实现自动上传了