====== Rclone 云盘 ======
本文主要介绍如何将OneDrive作为一个超大的免费云盘,挂载到服务器或者本地电脑中。
申请5TB云盘的地址: [[https://onedrive.gdrive.vip/#form|Đăng ký tài khoản OneDrive miễn phí]] (不确定其有效时间)
Rclone设置以及如何挂载,请参阅脚注中的文章以及视频
((a>[[https://www.youtube.com/watch?v=-1ePQkzIj80&list=PLov0sGqKpZj-6_fOcMme1J6jCtkqj9uzT&index=17|解说视频]]))
((b>[[https://tvtv.fun/bai-hua/004.html|视频文档]]))
((c>[[https://www.jianshu.com/p/072ff75d35ca|图文解说:创建适用于Rclone的OneDrive Azure API]]))
((d>[[https://rclone.org/onedrive/|Rclone OneDrive 官方文档]]))
((f>[[https://p3terx.com/archives/rclone-advanced-user-manual-common-command-parameters.html|Rclone 进阶使用教程 ]]))
===== 安装 Rclone =====
Windows系统从 ((b)) 给出的链接下载到本地,然后设置系统环境变量 path 到相应的目录即可。\\
Mac 或者 Linux 直接 apt-get install 或者 brew 安装就OK。
完成后安装 [[https://github.com/kapitainsky/RcloneBrowser/releases|RcloneBrowser]] 图形界面可以帮助管理。
===== OneDrive 应用 =====
需要去 [[https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade|Azure]] 注册一个应用,名字随便起,不是「onedrive」就好。
需要注意的点:
- 是验证栏选择 Web,重定向URL填写 ''%%http://localhost:53682/%%'', 否则无法验证。
- 应用名字不能是 “onedrive”
- 任何组织都可以访问
第一步:进去后复制客户端ID\\
{{:it:server:截屏2021-08-03_下午9.39.58.png?400|}}
第二步:建立一个新的证书和密码\\
{{:it:server:截屏2021-08-03_下午9.42.28.png?800|}}\\
将来要用到的是「值」 而不是 「机密ID」。创建以后马上就要复制下来,否则将来机会看不见。
第三步:添加API权限\\
选择 API 权限/Microsoft Graph/应用程序权限
* File.Read.All
* File.ReadWrite.All
* User.Read.All
{{:it:server:截屏2021-08-03_下午9.54.39.png?1000|}}
OneDrive 应用的设置基本就结束了。
===== 谷歌共享云盘 =====
在某宝花12元买了一个谷歌共享云盘。倒是不需要任何client_id和application_secrit,在rclone config的时候一路Enter就好,无需填任何东西。只需在最后交互界面询问,“Configure this as a Shared Drive (Team Drive)?” 的时候选择y,就会连接上共享云盘。
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
有时间可以尝试一下这个项目,(([[https://www.luckydesigner.space/dl-google-drive-doc-via-cloudflare/|免费使用cloudflare workers直接下载google drive文件免工具]])) 通过Cloudflare workers 直接下载云盘上的文件。
===== Rclone Config =====
按照参考文章中的演示一步一步往下走就可以了。最后的结果是
Name Type
==== ====
gdrive onedrive
imac:~ mai$ rclone tree gdrive:work\\
/
└── 文档.docx
imac:~ mai$ rclone lsd gdrive:
-1 2021-08-03 20:55:28 2 work
如果在headless计算机上设置的话,比如vps上,最后一步要选择NO,并在当地计算机上验证。也有可能出现tocken不正确,或者不可识别的错误。有个取巧的方法就是在当地可以启动浏览器的计算机上config一次,成功后其config文档会保存在''%%/home//.config/rclone/rclone.conf%%''下面。把内容复制到远程计算机上相应的文档中就好了。查看config文档位置
rclone config file
最后一步可能要粘贴成下面这种形式,而不是仅仅token里面的那个字符串。
{"access_token":"******","expiry":"2021-08-04T01:22:50.579803+02:00"}
===== Rclone 挂载 =====
Windows 命令行挂载(参数 * 是让系自行选择一个没有分配的盘符)
rclone mount gdrive:work *
启动挂载就要用到脚本以及[[http://www.secfs.net/winfsp/|winfsp 程序]]。
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "rclone.exe mount gdrive:work * --vfs-cache-mode writes",0
组合键 win + R 唤出运行窗口,输入 shell:startup,回车执行后会打开 Windows 启动文件夹。把脚本拖入这个文件夹即可,电脑每次启动时都会自动执行这个文件夹中的脚本文件。
Mac 安装rclone和fuse
curl https://rclone.org/install.sh | sudo bash
brew install --cask osxfuse
sudo rclone mount gdrive:work ~/gdrive --allow-other --daemon
umount /path/to/local/mount # 卸载
Ubuntu 上挂载比较好的命令
rclone mount gdrive:work/backup ~/bkp --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 &
# fusermount -quz ~/bkp
# ... ps -ef | grep rclone -> kill pid
===== Rclone 卸载 =====
fusermount -qzu <本地路径>
# umount <本地路径>
===== 开机启动挂载 =====
Windows 系统参看 [[it:server:rclone#Rclone 挂载|上一节]] 文中的介绍。Linux 系统按以下步骤进行((e>[[https://p3terx.com/archives/linux-vps-uses-rclone-to-mount-network-drives-such-as-onedrive-and-google-drive.html|Rclone 使用教程 - 挂载 OneDrive、Google Drive 等网盘]]))
* 下载并编辑自启脚本({{ :it:server:rcloned.zip |mainserver 测试过}})
wget -N git.io/rcloned && nano rcloned
* 开始挂载 ''%%bash /etc/init.d/rcloned start%%''
* 停止挂载 ''%%bash /etc/init.d/rcloned stop%%''
* 重新挂载 ''%%bash /etc/init.d/rcloned restart%%''
* 查看日志 ''%%tail -f /$HOME/.rclone/rcloned.log%%''
* 修改脚本参数
NAME="gdrive" #Rclone配置时填写的name
REMOTE='work' #远程文件夹work,网盘里的挂载的一个文件夹,留空为整个网盘
LOCAL='/home/onedrive' #挂载地址,VPS本地挂载目录
* 设置开机自启
mv rcloned /etc/init.d/rcloned
chmod +x /etc/init.d/rcloned
update-rc.d -f rcloned defaults # Debian/Ubuntu
chkconfig rcloned on # CentOS
bash /etc/init.d/rcloned start
:?: Mac 系统参看[[it:skills:macskills|开机启动]] 中描述。
* 卸载自启挂载
bash /etc/init.d/rcloned stop
update-rc.d -f rcloned remove # Debian/Ubuntu
chkconfig rcloned off # CentOS
rm -f /etc/init.d/rcloned
===== tar rclone =====
rclone 传递大型文件还是很好的,但用作restic仓库就非常的慢。所以比较好的使用方式应该是tar一个大文件过去。
tar cf - /tmp/sync-dir/ | rclone rcat gdrive:work/backup/custom-test-rcat.tar.gz
===== 基本使用 =====
安装 ''%%apt-get install rclone%%''
配置 ''%%rclone config show%%''
''%%rclone config%%'' \\
name: goldencloud
Google Drive(13)
一路回车,不需要输入邮箱。最后会给一个链接地址,在浏览器中打开这个地址,登陆到相应的GoogleDrive中。谷歌会给一个配对密码,返回Terminal输入这个密码即可。
// 复制 test.txt 文件到云盘的 ftp 目录
rclone copy test.txt goldencloud:ftp
// 复制 dirc 文件夹到云盘的 ftp 目录
rclone copy dirc goldencloud:ftp
{{tag>文件系统}}