🚀 如何通过 OneDrive 和 Rclone 实现云盘与 GitHub Pages 的双重绑定与同步
1. 核心流程图
本地修改 (OneDrive 目录) ➔ 云端同步 (Microsoft Cloud) ➔ GitHub Actions (自动拉取) ➔ GitHub 仓库 (代码托管) ➔ GitHub Pages (Web 页面呈现)
2. 准备阶段:本地授权 (获取云端钥匙)
在你的 Windows 电脑上,利用 Rclone 插件与微软服务器建立信任关系。
操作步骤:
-
下载 Rclone:前往 rclone.org 下载 Windows 版本的
.zip并解压。 -
定位目录:在 PowerShell 中进入解压后的文件夹。
-
开始配置:
-
输入命令:
.\rclone.exe config -
选择
n(New remote),名字输入onedrive。 -
Storage:选择数字
38(Microsoft OneDrive)。 -
client_id/secret:直接回车跳过。
-
region:选择
1(Global)。 -
Edit advanced config:输入
n。 -
Use auto config:输入
y。
-
-
浏览器授权:在弹出的浏览器窗口中登录你的微软账号,点击“接受”。看到 Success! 后回到终端。
-
选择驱动器:
-
config_type:选择1(OneDrive Personal or Business)。 -
config_driveid:根据列表选择你存放笔记的那个盘(通常是1或2)。 -
确认
y/n时,一路输入y直到回到主菜单,最后输入q退出。
-
3. 提取 GitHub 专用密钥
在同步任务中,GitHub 服务器需要你的 Token 才能访问网盘。
-
获取代码:在终端输入
.\rclone.exe config show onedrive。 -
复制内容:将屏幕上出现的从
[onedrive]到最后的所有文本完整复制并保存。
4. GitHub 仓库设置 (Secret)
为了安全起见,不要把 Token 直接写在脚本里,而是存入 GitHub 的“保险箱”:
-
进入你的 GitHub 仓库(如
Anwangyu.github.io)。 -
点击 Settings ➔ Secrets and variables ➔ Actions。
-
点击 New repository secret。
-
Name:填入
RCLONE_CONF。 -
Value:粘贴你刚才在终端复制的那一段完整配置。
-
点击 Add secret。
5. 编写自动化脚本 (Workflow)
在仓库中创建路径为 .github/workflows/sync.yml 的文件,内容如下:
YAML
name: Weekly OneDrive Sync
on:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
sync_and_deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Rclone
run: curl https://rclone.org/install.sh | sudo bash
- name: Setup Rclone Config
env:
RCLONE_CONF_CONTENT: ${{ secrets.RCLONE_CONF }}
run: |
mkdir -p ~/.config/rclone
echo "$RCLONE_CONF_CONTENT" > ~/.config/rclone/rclone.conf
- name: Sync from OneDrive
run: |
# 同步到当前目录
rclone sync "onedrive:/Note/Anwangyu.github.io/github-pages" . --exclude ".git/**" --exclude ".github/**"
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install MkDocs and Material Theme
run: pip install mkdocs mkdocs-material
- name: Build and Deploy MkDocs
run: |
# 这步会自动把 .md 渲染成 .html 并推送到 gh-pages 分支
mkdocs gh-deploy --force
6. 运行与验证
-
手动测试:点击仓库上方的 Actions 标签,选择 Weekly OneDrive Sync,点击 Run workflow。
-
结果检查:
-
若图标变绿 ✅:同步成功。
-
若图标变红 ❌:点击错误步骤查看日志,检查 OneDrive 路径是否拼写准确(注意大小写)。
-
🎯 总结
-
数据冗余:笔记同时存在于 OneDrive 和 GitHub。
-
无感更新:只需在本地按习惯编辑,Web 页面会按计划自动更新。
-
MkDocs 兼容:GitHub 仓库仅保留
docs/和mkdocs.yml等网页核心文件,保持架构纯净。