GitHub Action 将图床仓库同步到 OneDrive 网盘
需求分析
当笔者更新 本博 (向 Github 的 Kukmoon/kukmoon_blog
仓库推送新内容)时,把图床(GitHub 的 Kukmoon/img
仓库)里的全部内容,借助 Rclone 同步到 OneDrive 网盘。
实现思路
有两种解决方案,一是用 rclone sync
命令,二是用 fuse
+ rclone mount
+ git pull
。笔者采用了前者。
准备工作
-
把
C:\Users\你的用户名\.config\rclone\rclone.conf
单独压缩为rclone.zip
(压缩包里只有这一个文件,没有文件夹结构) ,并设置密码。 -
把
rclone.zip
文件的密码写入Repo secret。打开笔者的博客仓库Kukmoon/kukmoon_blog
,点击 Settings and variables ➡️ Actions ➡️ New repository secret,Name
设置为RC_PASSWD
,在Value
框中填入rclone.zip
文件的密码,然后点击 Add Secret 按钮。 -
把
rclone.zip
上传到Kukmoon/img
仓库的根目录。(注意,是上传到 img 仓库的根目录,不是 kukmoon_blog 仓库)
解决方案一:rclone sync
将下列代码另存为 Kukmoon/kukmoon_blog
仓库的 /.github/workflows/deploy.yml
文件。
如果同名文件已存在,将下列代码从第 17 行到最后的文本复制粘贴到该文件的末尾;注意:每行开头的空格不能删也不能乱,因为 YAML 文件是根据每行开始的空格数量划分代码的逻辑结构的。
1 |
|
解决方案二
解决方案二的思路是在 fuse
的帮助下,用 rclone mount
将 OneDrive 挂载为本地盘,然后进入这个本地盘的本地仓库目录,执行 git pull
从 GitHub 的仓库拉取。但是 rclone 的官方文档[3]说,rclone sync 命令在出错时会重试,但是 rclone mount 不会。所以笔者不打算写解决方案二了。
图片版权
题图:自绘,其中 GitHub 和 OneDrive 的图标版权均归 Microsoft 所有。