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 所有。
参考资料
