Rclone是一个非常牛逼的软件,可以挂载OneDrive/Google Drive/Amazon Drive等云存储,同时还支持全平台,意味着您可以在Windows、Mac OS、Linux上进行使用。这篇文章主要分享CentOS使用Rclone挂载OneDrive的过程,其它系统或者挂载其它网盘原理和方法大致相同。

前提说明
服务器上CentOS大部分未安装图形界面,但是Rclone必须要在有内置浏览器的电脑才能正常完成授权,因此这里使用的办法是先在本地Windows电脑安装Rclone并获取授权后的token,再将其复制到CentOS的服务器上。
Windows 安装Rclone
- Windows客户端:rclone-v1.41-windows-amd64.zip
下载后将其解压,并将rclone.exe
移动到C:\Windows\System32
这个目录,这样就可以使用rclone命令了,如下截图。

在cmd窗口继续输入命令rclone config
进行配置,输入n
新建一个远程,并取一个名字,比如onedrive

继续下一步,选择需要挂载的云存储,Onedrvie是16,随着版本的变化可能会改变,自己灵活变通即可。

client_id
/client_secret
直接留空并回车,然后选择OneDrive版本,教育版或商业版请选择b
,个人版选择p

浏览器会自动打开http://localhost:53682/
并进行授权,如果授权成功会返回token
,请务必将token
记录并保存后面还要使用。


CentOS安装Rclone
直接使用官方的一键安装命令即可,输入下面的命令:
curl https://rclone.org/install.sh | sudo bash
CentOS挂载Onedrive
接下来操作方法和windows完全一样,就不重复了,唯一的区别是“Use auto config?”这里选择n
,并输入之前获取的token

继续输入命令进行挂载
#安装fuse
yum -y install fuse
#创建挂载目录
mkdir -p /home/onedrive
#挂载
rclone mount remote:path/to/files /home/onedrive
#如果需要后台保持运行,使用下面的命令
nohup rclone mount remote:path/to/files /home/onedrive &
#####必须挂载到可道云安装目录下的文件夹:
mount onedriver5t:/ /www/wwwroot/yunpan.caojiawan.cn/data/User/admin/home/onedriver5t --allow-other --daemon --allow-non-empty
解释下上面的参数:
- remote:远程名,之前我们设置的是onedrive
- path/to/files:远程文件路径(也就是Onedrive路径),可设置为
/,注意不可有空格,我就在这里卡了一会。
- /home/onedrive:本地磁盘路径
- 如果不挂载到可道云目录下,就访问不到。
不出问题的情况下,输入df -h
就可以看到Onedrive成功挂载。

总结
Rclone支持挂载20多种网盘,不过大多数网盘都是国外的,在国外VPS上使用效果更佳,用来备份数据这些还是挺不错的。
Microsoft OneDrive
路径指定为 remote:path
路径可以根据需要深入,例如remote:directory/subdirectory
。
OneDrive的初始设置涉及从Microsoft获取您需要在浏览器中执行的令牌。 rclone config
引导你完成它。
这是一个如何制作远程调用的示例remote
。第一次运行:
rclone config
这将指导您完成交互式设置过程:
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> remote
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
...
17 / Microsoft OneDrive
\ "onedrive"
...
Storage> 17
Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Choose a number from below, or type in an existing value
1 / OneDrive Personal or Business
\ "onedrive"
2 / Sharepoint site
\ "sharepoint"
3 / Type in driveID
\ "driveid"
4 / Type in SiteID
\ "siteid"
5 / Search a Sharepoint site
\ "search"
Your choice> 1
Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk
Chose drive to use:> 0
Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents
Is that okay?
y) Yes
n) No
y/n> y
--------------------
[remote]
type = onedrive token = {“access_token”:”youraccesstoken”,”token_type”:”Bearer”,”refresh_token”:”yourrefreshtoken”,”expiry”:”2018-08-26T22:39:52.486512262+08:00″} drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk drive_type = business ——————– y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y
有关如何在没有Internet浏览器的计算机上进行设置,请参阅远程设置文档。
请注意,rclone在本地计算机上运行Web服务器以收集从Microsoft返回的令牌。这仅从打开浏览器的那一刻开始,直到您返回验证码的那一刻。这是http://127.0.0.1:53682/
,这可能需要你,如果你正在运行的主机防火墙暂时解锁。
配置完成后,您可以rclone
像这样使用,
列出OneDrive顶级目录
rclone lsd remote:
列出OneDrive中的所有文件
rclone ls remote:
将本地目录复制到名为backup的OneDrive目录
rclone copy /home/source remote:backup
获取您自己的客户端ID和密钥
在默认情况下执行请求时,rclone使用所有rclone用户共享的一对客户端ID和密钥。如果您遇到问题(例如,看到很多限制),您可以按照以下步骤获取自己的客户ID和密钥:
- 打开https://apps.dev.microsoft.com/#/appList,然后单击
Add an app
(Converged applications
如果适用则选择) - 输入应用的名称,然后点击“继续”。复制并保留
Application Id
应用名称下方以供日后使用。 - 在部分下
Application Secrets
,单击Generate New Password
。复制并保留该密码以供日后使用。 - 在部分下
Platforms
,单击Add platform
,然后Web
。输入http://localhost:53682/
在Redirect URLs
。 - 根据部分
Microsoft Graph Permissions
,Add
这些delegated permissions
:Files.Read
,Files.ReadWrite
,Files.Read.All
,Files.ReadWrite.All
,offline_access
,User.Read
。 - 滚动到底部并单击
Save
。
现在申请已经完成。运行rclone config
以创建或编辑OneDrive远程。分别提供应用程序ID和密码作为客户端ID和密钥。rclone将引导您完成剩下的步骤。
修改时间和哈希值
OneDrive允许在精确到1秒的对象上设置修改时间。这些将用于检测对象是否需要同步。
OneDrive个人支持SHA1类型哈希。OneDrive for Business和Sharepoint Server支持 QuickXorHash。
对于所有类型的OneDrive,您可以使用该--checksum
标志。
删除文件
您使用rclone删除的任何文件都将以垃圾邮件结尾。Microsoft不提供永久删除文件的API,也不提供清空垃圾箱的API,因此您必须使用Microsoft的某个应用程序或通过OneDrive网站执行此操作。
标准选项
以下是onedrive(Microsoft OneDrive)特有的标准选项。
–onedrive-客户端ID
Microsoft App Client ID正常保留空白。
- 配置:client_id
- 环境变量:RCLONE_ONEDRIVE_CLIENT_ID
- 输入:string
- 默认值:“”
–onedrive客户端秘密
Microsoft App Client Secret正常保留空白。
- 配置:client_secret
- 环境变量:RCLONE_ONEDRIVE_CLIENT_SECRET
- 输入:string
- 默认值:“”
高级选项
以下是onedrive(Microsoft OneDrive)特有的高级选项。
–onedrive的块大小
使用上传文件的块大小必须是320k的倍数。
超过这个大小的文件将被分块 – 必须是320k的倍数。请注意,块将被缓冲到内存中。
- 配置:chunk_size
- 环境变量:RCLONE_ONEDRIVE_CHUNK_SIZE
- 类型:SizeSuffix
- 默认值:10M
–onedrive驱动-ID
要使用的驱动器的ID
- 配置:drive_id
- 环境变量:RCLONE_ONEDRIVE_DRIVE_ID
- 输入:string
- 默认值:“”
–onedrive驱动型
驱动器的类型(个人| business | documentLibrary)
- 配置:drive_type
- 环境变量:RCLONE_ONEDRIVE_DRIVE_TYPE
- 输入:string
- 默认值:“”
–onedrive展露-的OneNote档案
设置为使OneNote文件显示在目录列表中。
默认情况下,rclone会将OneNote文件隐藏在目录列表中,因为“打开”和“更新”等操作对它们无效。但是这种行为也可能会阻止您删除它们。如果要删除OneNote文件或希望它们显示在目录列表中,请设置此选项。
- 配置:expose_onenote_files
- 环境变量:RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES
- 输入:bool
- 默认值:false
限制
请注意,OneDrive不区分大小写,因此您不能拥有名为“Hello.doc”的文件和名为“hello.doc”的文件。
有很多字符不能在OneDrive文件名中。这些在Windows平台上不会发生,但在非Windows平台上它们很常见。Rclone将这些名称映射到相同的unicode等效名称。例如,如果文件中包含一个文件?
,则会将其映射到?
。
OneDrive for Business允许的最大文件大小为15GB,OneDrive Personal允许的最大文件大小为35GB(2019年1月4日更新)。
对于OneDrive,OneDrive for Business和SharePoint Online,整个路径(包括文件名)必须包含少于400个字符。如果使用rclone加密文件和文件夹名称,则可能需要注意此限制,因为加密的名称通常比原始名称长。
OneDrive似乎可以在一个文件夹中至少有50,000个文件,但是100,000 rclone将会出现列出目录的错误couldn’t list files: UnknownError:
。有关详细信息,请参阅 #2707。
有关不同类型OneDrive限制的官方文档可在此处找到。
版本问题
OneDrive中的每个更改都会导致服务创建新版本。这会计入用户配额。例如,更改文件的修改时间会创建第二个版本,因此文件使用两倍的空间。
这copy
是唯一受此影响的rclone命令,因为我们复制文件然后设置修改时间以匹配源文件。
注意:从2018年10月开始,用户将无法再默认禁用版本控制。这是因为Microsoft已对该机制进行了更新。要更改此新的默认设置,SharePoint管理员需要运行PowerShell命令。如果您是管理员,则可以在PowerShell中运行这些命令以更改该设置:
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
(如果你还没有安装这个)Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Credential YOU@YOURSITE.COM
(替换YOURSITE
,YOU
,YOURSITE.COM
与实际值,这将提示输入您的凭据)Set-SPOTenant -EnableMinimumVersionRequirement $False
Disconnect-SPOService
(断开与服务器的连接)
以下是普通用户禁用版本控制的步骤。如果未看到“无版本控制”选项,请确保满足上述要求。
用户Weropol找到了一种在OneDrive上禁用版本控制的方法
- 单击OneDrive Business页面顶部的齿轮符号打开设置菜单。
- 单击站点设置。
- 进入“站点设置”页面后,导航到“站点管理”>“站点库和列表”。
- 单击“自定义”“文档”。
- 单击常规设置>版本控制设置。
- 在文档版本历史记录下,选择无版本控制选项。注意:这将禁用新文件版本的创建,但不会删除任何以前的版本。您的文件是安全的。
- 单击“确定”应用更改。
- 使用rclone上传或修改文件。(我也使用–no-update-modtime标志)
- 使用rclone后恢复版本控制设置。(可选的)
故障排除
Error: access_denied
Code: AADSTS65005
Description: Using application 'rclone' is currently not supported for your organization [YOUR_ORGANIZATION] because it is in an unmanaged state. An administrator needs to claim ownership of the company by DNS validation of [YOUR_ORGANIZATION] before the application rclone can be provisioned.
这意味着rclone无法将OneDrive for Business API与您的帐户一起使用。你不能做太多,也许写一封电子邮件给你的管理员。
但是,还有其他方式可以与OneDrive帐户进行交互。看一下webdav后端:https://rclone.org/webdav/#sharepoint
Спасибо
Awesome article.
Kitap Hangi Siteden Alınır Güvenli Kitap Siteleri
12 Yaş Kitapları Oku Yeni Çıkan Roman Kitapları
Pingback: viagra
Oh my goodness! Awesome article dude! Thank you
so much, However I am experiencing problems with your RSS.
I don’t know why I can’t join it. Is there anyone else
having the same RSS problems? Anyone who knows the answer can you kindly respond?
Thanx!!
This piece of writing gives clear idea designed for the
new viewers of blogging, that truly how to do blogging and site-building.
Anyone are good at strategy games, then games
like poker are ways to go. Likewise, there a
wide rangge of options easily obtainable in the associated with casino.
In the casinos, the pokies have a currency detector.
ImcZMapjhzWuB