PicGo/PicList + GitHub 图床完全指南 | 免费高速图片托管方案
在撰写技术博客、文档或笔记时,图片是不可或缺的要素。传统的图床服务往往存在收费、限速、不稳定等问题。利用 GitHub + PicGo/PicList 搭建的免费图床方案,不仅稳定可靠,还能享受 GitHub Pages 的全球 CDN 加速。本文将详细介绍从零开始的完整搭建流程。
为什么选择 GitHub 图床?
核心优势对比
| 特性 | GitHub 图床 | 传统图床 | 自建图床 |
|---|---|---|---|
| 💰 成本 | ✅ 完全免费 | ⚠️ 付费/有限额 | 💰 服务器费用 |
| 🌍 CDN 加速 | ✅ 全球加速 | ⚠️ 视服务商而定 | 🔧 需自行配置 |
| 🔒 数据安全 | ✅ GitHub 备份 | ⚠️ 依赖服务商 | ✅ 自主控制 |
| 📊 存储空间 | ✅ 1GB 免费 | ⚠️ 有限制 | 💾 取决于硬盘 |
| 🛠️ 管理工具 | ✅ PicGo/PicList | ⚠️ 各平台不同 | 🔧 需自行开发 |
| ⚡ 稳定性 | ✅ 极高 | ⚠️ 参差不齐 | 🔧 取决于运维 |
| 📝 Markdown 支持 | ✅ 完美支持 | ⚠️ 部分支持 | 🔧 需配置 |
适用场景
- ✅ 技术博客:VitePress、Hexo、Hugo 等静态博客
- ✅ 文档编写:Notion、Obsidian、Typora 等笔记软件
- ✅ 开源项目:README 中的示意图
- ✅ 个人网站:头像、Logo、插图等资源
- ✅ 社交媒体:快速生成图片链接分享
准备工作
工具选择建议
PicGo vs PicList 对比
| 特性 | PicGo | PicList |
|---|---|---|
| 🎯 定位 | 基础图床工具 | 增强版图床管理 |
| 🖼️ 图片压缩 | ❌ 不支持 | ✅ 内置压缩 |
| 🔄 批量上传 | ⚠️ 基础支持 | ✅ 强大支持 |
| 📁 重命名 | ❌ 不支持 | ✅ 自动重命名 |
| 🗂️ 多平台 | ✅ 支持多种 | ✅ 支持更多 |
| 🎨 界面 | 简洁 | 现代化 |
| 📦 体积 | 较小 | 稍大 |
| 🆓 价格 | 免费开源 | 免费开源 |
推荐选择:
- 🟢 新手用户:PicGo(简单易用)
- 🔵 进阶用户:PicList(功能强大)
- 🟡 两者皆可:根据界面喜好选择
创建新仓库

详细步骤
步骤 1:登录 GitHub
- 访问 github.com
- 点击右上角【Sign up】注册账号(如已有账号则登录)
- 完成邮箱验证
步骤 2:创建新仓库
登录后,点击右上角【+】→【New repository】
填写仓库信息:
- Repository name:
image-hosting(或任意名称) - Description:
My personal image hosting service(可选) - Public/Private: ⚠️ 必须选择 Public
- Initialize this repository with:
- ✅ 勾选
Add a README file - ❌ 不勾选
.gitignore - ❌ 不勾选 License
- ✅ 勾选
- Repository name:
点击【Create repository】
重要提示:
⚠️ 仓库必须是 Public(公开)的!
如果设置为 Private,图片将无法通过 URL 直接访问。步骤 3:记录仓库信息
创建成功后,记录以下信息:
- 用户名: your-username
- 仓库名: image-hosting
- 完整路径: your-username/image-hosting
生成 Token
- 生成 Token
- 点击左侧的
Tokens(classic) - 再点击
Generate new token(classic)

注意
生成的 token 只会在这里显示一次,记得单独保存下来。
Token 生成详解
步骤 1:访问 Token 设置页面
- 点击 GitHub 右上角头像
- 选择【Settings】
- 滚动到页面底部,点击【Developer settings】
- 点击【Personal access tokens】→【Tokens (classic)】
步骤 2:创建新 Token
点击【Generate new token (classic)】
填写配置:
- Note:
PicGo Image Hosting(便于识别) - Expiration:
- 选项 1:
No expiration(永久有效,推荐) - 选项 2: 自定义过期时间(更安全)
- 选项 1:
- Note:
勾选权限范围:
- ✅ repo(全选,包含所有子项)
repo:statusrepo_deploymentpublic_reporepo:invitesecurity_events
- ✅ repo(全选,包含所有子项)
滚动到页面底部,点击【Generate token】
步骤 3:保存 Token
🔑 生成的 Token 示例:
ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠️ 重要提示:
1. Token 只会显示这一次!
2. 立即复制到安全的地方保存
3. 建议保存到密码管理器
4. 不要分享给他人
5. 不要提交到代码仓库安全建议:
- 🔒 使用密码管理器保存(如 1Password、Bitwarden)
- 📝 记录在本地加密文件中
- 🚫 不要在公开场合展示
- 🔄 定期更换(如果设置了有效期)
配置 PicGo
配置 PicGo
图床配置名:随意填写设定仓库名:为刚设置的存储库设定分支名:存储库的分支名设置Token:创建的 Token设定存储路径:可以设置为文件夹,如:img/;也可忽略

PicGo 详细配置
步骤 1:下载并安装 PicGo
下载地址:
- 官方网站:https://molunerfinn.com/PicGo/
- GitHub Release:https://github.com/Molunerfinn/PicGo/releases
支持平台:
- ✅ Windows
- ✅ macOS
- ✅ Linux
步骤 2:安装 GitHub 插件
- 打开 PicGo
- 点击左侧【插件设置】
- 搜索
github-plus或github - 点击【安装】
- 等待安装完成
步骤 3:配置 GitHub 图床
- 点击左侧【图床设置】
- 找到【GitHub 图床】
- 点击【设为默认图床】
- 点击【配置】按钮
填写配置信息:
# 图床配置示例
图床配置名: GitHub-Hosting
设定仓库名: your-username/image-hosting
设定分支名: main
设置Token: ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
设定存储路径: images/
自定义域名: https://cdn.jsdelivr.net/gh/your-username/image-hosting@main参数详解:
| 参数 | 说明 | 示例 |
|---|---|---|
| 图床配置名 | 自定义名称,便于区分 | GitHub-Main |
| 设定仓库名 | GitHub 仓库完整路径 | username/repo-name |
| 设定分支名 | 仓库分支名称 | main 或 master |
| 设置Token | 之前生成的 Personal Access Token | ghp_xxx... |
| 设定存储路径 | 图片存放的文件夹路径 | images/ 或留空 |
| 自定义域名 | CDN 加速域名(可选) | 见下方说明 |
步骤 4:测试上传
- 准备一张测试图片
- 拖拽到 PicGo 窗口
- 或点击【上传区】→【上传图片】
- 等待上传完成
- 复制返回的 URL
成功标志:
✅ 上传成功!
图片 URL: https://raw.githubusercontent.com/username/repo/main/images/test.pngPicList 配置(可选)
如果你选择使用 PicList,配置步骤类似:
步骤 1:下载 PicList
步骤 2:配置 GitHub
- 打开 PicList
- 进入【图床设置】
- 选择【GitHub】
- 填写相同配置信息
PicList 额外功能:
- 🖼️ 图片压缩:自动压缩上传图片
- 📝 智能重命名:按日期/哈希重命名
- 🔄 批量处理:一次性上传多张图片
- 📊 上传历史:查看过往上传记录
CDN 加速配置
为什么需要 CDN 加速?
GitHub Raw 文件的原始链接:
https://raw.githubusercontent.com/username/repo/main/images/photo.jpg存在的问题:
- 🐌 国内访问速度慢
- ⏱️ 加载时间长
- 🚫 可能被墙
推荐的 CDN 方案
方案 1:jsDelivr(推荐)
配置方法:
在 PicGo 的【自定义域名】中填写:
https://cdn.jsdelivr.net/gh/username/repo@main最终 URL 格式:
原链接: https://raw.githubusercontent.com/username/repo/main/images/photo.jpg
CDN链接: https://cdn.jsdelivr.net/gh/username/repo@main/images/photo.jpg优势:
- ✅ 全球 CDN 加速
- ✅ 国内访问速度快
- ✅ 完全免费
- ✅ 自动缓存
注意事项:
- ⚠️ 更新后有缓存延迟(约 5-10 分钟)
- ⚠️ 单文件最大 50MB
方案 2:Fastly CDN
配置方法:
https://fastly.jsdelivr.net/gh/username/repo@main优势:
- ✅ 更快的刷新速度
- ✅ 更好的稳定性
方案 3:GitHub Pages + 自定义域名
适合高级用户:
- 启用 GitHub Pages
- 绑定自定义域名
- 配置 CNAME 记录
最终 URL:
https://images.yourdomain.com/images/photo.jpg高级配置技巧
1. 图片自动压缩
使用 PicList 内置压缩:
- 打开 PicList
- 进入【上传设置】
- 启用【图片压缩】
- 配置压缩参数:
- 质量:80%
- 最大宽度:1920px
- 格式转换:WebP(可选)
效果:
原图: 2.5 MB → 压缩后: 350 KB
节省空间: 86%
加载速度: 提升 7 倍2. 智能重命名
避免文件名冲突:
// 重命名规则示例
{year}/{month}/{timestamp}_{random}.png
// 实际效果
2024/01/1705123456_abc123.png配置方法:
- PicList → 【上传设置】
- 启用【自动重命名】
- 选择命名规则
3. 批量上传
操作步骤:
- 选中多张图片
- 拖拽到 PicGo/PicList
- 等待批量上传完成
- 一键复制所有链接
快捷键:
Ctrl + V:粘贴上传剪贴板图片Ctrl + Shift + V:粘贴并复制链接Ctrl + A:全选上传历史
4. 快捷键配置
PicGo 快捷键设置:
- 进入【快捷键设置】
- 配置常用操作:
- 截图上传:
Ctrl + Alt + U - 粘贴上传:
Ctrl + Alt + V - 复制最后链接:
Ctrl + Alt + C
- 截图上传:
配合截图工具:
- Windows: Snipaste + PicGo
- macOS: Shottr + PicGo
- Linux: Flameshot + PicGo
Markdown 中使用
标准格式
HTML 格式(支持更多属性)
<img
src="https://cdn.jsdelivr.net/gh/username/repo@main/images/photo.jpg"
alt="图片描述"
width="800"
loading="lazy"
/>VitePress 特殊语法
{width=600}常见问题排查
问题 1:上传失败 - 404 Not Found
可能原因:
- 仓库名填写错误
- Token 权限不足
- 仓库不存在
解决方案:
# 1. 验证仓库是否存在
curl -I https://api.github.com/repos/username/repo-name
# 2. 检查 Token 权限
# 重新生成 Token,确保勾选 repo 权限
# 3. 确认仓库路径
# 应该是: username/repo-name
# 不是: https://github.com/username/repo-name问题 2:图片无法访问
可能原因:
- 仓库设置为 Private
- CDN 缓存未刷新
- 网络问题
解决方案:
# 1. 确认仓库为 Public
# GitHub → Settings → Danger Zone → Change visibility
# 2. 清除 CDN 缓存
# jsDelivr: https://purge.jsdelivr.net/gh/username/repo@main/path/file.jpg
# 3. 测试直连
curl -I https://raw.githubusercontent.com/username/repo/main/images/test.jpg问题 3:上传速度慢
优化方案:
- 启用图片压缩
- 使用 CDN 加速
- 检查网络连接
- 避开高峰时段
问题 4:Token 泄露怎么办?
紧急处理:
# 1. 立即删除泄露的 Token
# GitHub → Settings → Developer settings → Tokens → Delete
# 2. 生成新 Token
# 按照之前的步骤重新生成
# 3. 更新 PicGo 配置
# 替换为新 Token
# 4. 检查是否有异常提交
# GitHub → Repository → Insights → Traffic问题 5:存储空间不足
GitHub 限制:
- 单个仓库:1GB(软限制)
- 单个文件:100MB
- 推荐单文件:<50MB
解决方案:
# 1. 清理旧图片
# 手动删除不需要的文件
# 2. 压缩现有图片
# 使用 TinyPNG 等工具
# 3. 创建新仓库
# 分散存储到多个仓库
# 4. 使用 Git LFS(不推荐)
# 会增加复杂度性能优化建议
1. 图片格式选择
| 格式 | 适用场景 | 压缩率 | 兼容性 |
|---|---|---|---|
| WebP | 网页展示 | ⭐⭐⭐⭐⭐ | 现代浏览器 |
| PNG | 透明背景 | ⭐⭐⭐ | 全部支持 |
| JPG | 照片 | ⭐⭐⭐⭐ | 全部支持 |
| SVG | 图标/图表 | ⭐⭐⭐⭐⭐ | 现代浏览器 |
| GIF | 动图 | ⭐⭐ | 全部支持 |
推荐:
- 📸 照片:JPG(质量 80%)
- 🎨 截图:PNG 或 WebP
- 📊 图表:SVG
- 🎬 动图:GIF 或 WebP
2. 图片尺寸优化
# 推荐尺寸
博客配图: 1200x630 px (OG 图片标准)
文章插图: 800x600 px
缩略图: 400x300 px
头像/Logo: 256x256 px3. 懒加载
<!-- 添加 loading="lazy" 属性 -->
<img src="..." alt="..." loading="lazy" />备份与迁移
备份仓库
# 克隆整个仓库
git clone https://github.com/username/repo.git
# 打包备份
tar -czf image-backup.tar.gz repo/迁移到新仓库
# 1. 克隆旧仓库
git clone https://github.com/old-user/old-repo.git
# 2. 修改远程地址
cd old-repo
git remote set-url origin https://github.com/new-user/new-repo.git
# 3. 推送到新仓库
git push -u origin main总结
使用 PicGo/PicList + GitHub 搭建图床的优势:
- ✅ 完全免费:无需支付任何费用
- ✅ 稳定可靠:依托 GitHub 基础设施
- ✅ 全球加速:CDN 覆盖 worldwide
- ✅ 易于管理:图形化工具操作简单
- ✅ 版本控制:Git 管理图片历史
- ✅ 无缝集成:完美支持 Markdown
关键步骤回顾:
1. 创建 Public 仓库
2. 生成 Personal Access Token
3. 安装 PicGo/PicList
4. 配置 GitHub 图床
5. 设置 CDN 加速(可选)
6. 测试上传并使用下一步学习:
开始你的免费高速图床之旅吧!🚀✨