使用 PicGo 与 GitHub 搭建高效图床,并结合 Local Images Plus 备份原图

发布于:2025-08-12 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、背景介绍

在技术写作、博客创作和文档编写中,插入清晰、美观且可长期访问的图片是必不可少的。
然而,将图片直接上传到博客平台往往存在以下问题:

  • 图片加载慢,影响用户体验

  • 图片资源分散,不易统一管理

  • 平台迁移时,图片迁移成本高

为了解决这些问题,越来越多开发者选择自建图床(Image Hosting)。
PicGo + GitHub 的组合,正是一个免费、跨平台且简单高效的方案:

  • PicGo:一款开源的图片上传与管理工具,支持多种存储平台(GitHub、七牛云、SM.MS 等)

  • GitHub:提供免费且稳定的文件存储,结合 CDN 服务可加速访问

  • CDN 加速(jsDelivr):提升图片加载速度,优化读者体验

此外,在日常写作中,我还额外下载了 Local Images Plus 插件,目的是在上传到图床的同时,在本地保留一份原图
这样无论将来发布到不同的博客平台,还是迁移内容,都能有原始图片的备份,避免图床失效或丢失造成的内容缺失。


二、核心步骤

1. 前置准备

  • 下载并安装 PicGoGitHub 项目地址

  • 登录 GitHub,新建一个用于存放图片的仓库(建议命名为 pic-bed 或类似含义)


2. 获取 GitHub Token

  1. 登录 GitHub,点击右上角头像 → Settings(设置)

  2. 在左侧导航栏选择 Developer settings(开发者设置)

  3. 选择 Personal access tokens(个人访问令牌)

  4. 点击 Generate new token(生成新的令牌)

  5. 设置 Token 名称,勾选全部权限标签(Note:建议合理设置有效期)

  6. 创建后复制 Token 值并妥善保存(过期后需重新生成)


3. 配置 PicGo

  • 仓库名[GitHub用户名]/[仓库名]

  • 分支main(注意:自 2020 年 10 月起,GitHub 默认分支名从 master 改为 main

  • 设定 Token:粘贴刚生成的 GitHub Token

  • 存储路径(可选):如填 img,则图片将保存在 img 文件夹下

  • 自定义域名(推荐 CDN 加速):

    https://cdn.jsdelivr.net/gh/[GitHub用户名]/[仓库名]@main
    

    ⚠️ 如果不指定 @main,PicGo 默认会用 master,导致上传后图片无法访问

配置完成后,就可以直接在 PicGo 上传区测试图片上传。

image.png


4. 结合 Local Images Plus 做本地备份

虽然 PicGo 上传到图床后,笔记中会有一个可用的外链,但为了长期内容安全,建议本地也保留一份原图。
我下载 Local Images Plus 插件,正是为此目的:

  1. 插件作用

    • 自动检测笔记中的远程图片链接(如 PicGo 生成的图床 URL)。

    • 自动下载到本地指定的附件文件夹(如 attachments/)。

    • 自动替换为本地相对路径,确保离线也能查看。

  2. 推荐配置

    • Save folder:设为 vault 内的 attachments 文件夹。

    • Automatic processing:开启(粘贴或插入时立即下载并替换)。

    • Replace links:开启(确保链接替换为本地路径)。

    • (可选)Convert PNG to JPEG:节省空间,可设画质 80–90%。

  3. 实战流程

    • 粘贴截图 → PicGo 上传到 GitHub 图床 → 笔记插入 URL。

    • Local Images Plus 检测到 URL → 自动下载到 attachments → 替换为本地路径。

    • 结果:图床有一份,vault 本地也有一份,可随笔记备份。

  4. 批量处理历史笔记

    • 命令面板运行 Localize attachments for the current note(当前笔记)或 Localize attachments for all your notes(整个库,需先备份)。

5. 补充说明

  1. 为什么不用 GitHub 原生链接?
    原生链接格式为:

    https://raw.githubusercontent.com/[username]/[repo]/[branch]/[path]
    

    但访问速度往往很慢。使用 jsDelivr 作为 CDN 加速,只需更改域名即可,无需额外配置。

  2. 上传失败怎么办?
    多数情况下是某一步配置有误。像调试代码一样,逐项检查:

    • 仓库名拼写是否正确

    • 分支是否为 main

    • Token 是否有效且权限足够

    • PicGo 中的路径和域名是否一致


这样配置后,你的工作流将是:

  • PicGo 负责上传到 GitHub 图床(用于博客/CDN 加速访问)。

  • Local Images Plus 负责在本地保留一份原图(用于备份与跨平台迁移)。

  • 两者结合,既有访问速度,又有数据安全。