Skip to content

🚀 如何通过 OneDrive 和 Rclone 实现云盘与 GitHub Pages 的双重绑定与同步

1. 核心流程图

本地修改 (OneDrive 目录)云端同步 (Microsoft Cloud)GitHub Actions (自动拉取)GitHub 仓库 (代码托管)GitHub Pages (Web 页面呈现)


2. 准备阶段:本地授权 (获取云端钥匙)

在你的 Windows 电脑上,利用 Rclone 插件与微软服务器建立信任关系。

操作步骤:

  1. 下载 Rclone:前往 rclone.org 下载 Windows 版本的 .zip 并解压。

  2. 定位目录:在 PowerShell 中进入解压后的文件夹。

  3. 开始配置

    • 输入命令:.\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

  4. 浏览器授权:在弹出的浏览器窗口中登录你的微软账号,点击“接受”。看到 Success! 后回到终端。

  5. 选择驱动器

    • config_type:选择 1 (OneDrive Personal or Business)。

    • config_driveid:根据列表选择你存放笔记的那个盘(通常是 12)。

    • 确认 y/n 时,一路输入 y 直到回到主菜单,最后输入 q 退出。


3. 提取 GitHub 专用密钥

在同步任务中,GitHub 服务器需要你的 Token 才能访问网盘。

  • 获取代码:在终端输入 .\rclone.exe config show onedrive

  • 复制内容:将屏幕上出现的从 [onedrive] 到最后的所有文本完整复制并保存。


4. GitHub 仓库设置 (Secret)

为了安全起见,不要把 Token 直接写在脚本里,而是存入 GitHub 的“保险箱”:

  1. 进入你的 GitHub 仓库(如 Anwangyu.github.io)。

  2. 点击 SettingsSecrets and variablesActions

  3. 点击 New repository secret

  4. Name:填入 RCLONE_CONF

  5. Value:粘贴你刚才在终端复制的那一段完整配置。

  6. 点击 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. 运行与验证

  1. 手动测试:点击仓库上方的 Actions 标签,选择 Weekly OneDrive Sync,点击 Run workflow

  2. 结果检查

    • 若图标变绿 ✅:同步成功。

    • 若图标变红 ❌:点击错误步骤查看日志,检查 OneDrive 路径是否拼写准确(注意大小写)。


🎯 总结

  • 数据冗余:笔记同时存在于 OneDrive 和 GitHub。

  • 无感更新:只需在本地按习惯编辑,Web 页面会按计划自动更新。

  • MkDocs 兼容:GitHub 仓库仅保留 docs/mkdocs.yml 等网页核心文件,保持架构纯净。