跳转到内容

PicGo/PicList + GitHub 图床完全指南 | 免费高速图片托管方案

GitHub Image Hosting

在撰写技术博客、文档或笔记时,图片是不可或缺的要素。传统的图床服务往往存在收费、限速、不稳定等问题。利用 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 对比

特性PicGoPicList
🎯 定位基础图床工具增强版图床管理
🖼️ 图片压缩❌ 不支持✅ 内置压缩
🔄 批量上传⚠️ 基础支持✅ 强大支持
📁 重命名❌ 不支持✅ 自动重命名
🗂️ 多平台✅ 支持多种✅ 支持更多
🎨 界面简洁现代化
📦 体积较小稍大
🆓 价格免费开源免费开源

推荐选择:

  • 🟢 新手用户:PicGo(简单易用)
  • 🔵 进阶用户:PicList(功能强大)
  • 🟡 两者皆可:根据界面喜好选择

创建新仓库

PicGo

详细步骤

步骤 1:登录 GitHub

  1. 访问 github.com
  2. 点击右上角【Sign up】注册账号(如已有账号则登录)
  3. 完成邮箱验证

步骤 2:创建新仓库

  1. 登录后,点击右上角【+】→【New repository】

  2. 填写仓库信息:

    • Repository name: image-hosting(或任意名称)
    • Description: My personal image hosting service(可选)
    • Public/Private: ⚠️ 必须选择 Public
    • Initialize this repository with:
      • ✅ 勾选 Add a README file
      • ❌ 不勾选 .gitignore
      • ❌ 不勾选 License
  3. 点击【Create repository】

重要提示:

⚠️ 仓库必须是 Public(公开)的!
如果设置为 Private,图片将无法通过 URL 直接访问。

步骤 3:记录仓库信息

创建成功后,记录以下信息:

  • 用户名: your-username
  • 仓库名: image-hosting
  • 完整路径: your-username/image-hosting

生成 Token

  • 生成 Token
  • 点击左侧的 Tokens(classic)
  • 再点击 Generate new token(classic)

PicGo

注意

生成的 token 只会在这里显示一次,记得单独保存下来。

Token 生成详解

步骤 1:访问 Token 设置页面

  1. 点击 GitHub 右上角头像
  2. 选择【Settings】
  3. 滚动到页面底部,点击【Developer settings】
  4. 点击【Personal access tokens】→【Tokens (classic)】

步骤 2:创建新 Token

  1. 点击【Generate new token (classic)】

  2. 填写配置:

    • Note: PicGo Image Hosting(便于识别)
    • Expiration:
      • 选项 1: No expiration(永久有效,推荐)
      • 选项 2: 自定义过期时间(更安全)
  3. 勾选权限范围:

    • repo(全选,包含所有子项)
      • repo:status
      • repo_deployment
      • public_repo
      • repo:invite
      • security_events
  4. 滚动到页面底部,点击【Generate token】

步骤 3:保存 Token

🔑 生成的 Token 示例:
ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

⚠️ 重要提示:
1. Token 只会显示这一次!
2. 立即复制到安全的地方保存
3. 建议保存到密码管理器
4. 不要分享给他人
5. 不要提交到代码仓库

安全建议:

  • 🔒 使用密码管理器保存(如 1Password、Bitwarden)
  • 📝 记录在本地加密文件中
  • 🚫 不要在公开场合展示
  • 🔄 定期更换(如果设置了有效期)

配置 PicGo

配置 PicGo

  • 图床配置名:随意填写
  • 设定仓库名:为刚设置的存储库
  • 设定分支名:存储库的分支名
  • 设置Token:创建的 Token
  • 设定存储路径:可以设置为文件夹,如: img/ ;也可忽略

PicGo

PicGo 详细配置

步骤 1:下载并安装 PicGo

下载地址:

支持平台:

  • ✅ Windows
  • ✅ macOS
  • ✅ Linux

步骤 2:安装 GitHub 插件

  1. 打开 PicGo
  2. 点击左侧【插件设置】
  3. 搜索 github-plusgithub
  4. 点击【安装】
  5. 等待安装完成

步骤 3:配置 GitHub 图床

  1. 点击左侧【图床设置】
  2. 找到【GitHub 图床】
  3. 点击【设为默认图床】
  4. 点击【配置】按钮

填写配置信息:

yaml
# 图床配置示例
图床配置名: 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 Tokenghp_xxx...
设定存储路径图片存放的文件夹路径images/ 或留空
自定义域名CDN 加速域名(可选)见下方说明

步骤 4:测试上传

  1. 准备一张测试图片
  2. 拖拽到 PicGo 窗口
  3. 或点击【上传区】→【上传图片】
  4. 等待上传完成
  5. 复制返回的 URL

成功标志:

✅ 上传成功!
图片 URL: https://raw.githubusercontent.com/username/repo/main/images/test.png

PicList 配置(可选)

如果你选择使用 PicList,配置步骤类似:

步骤 1:下载 PicList

步骤 2:配置 GitHub

  1. 打开 PicList
  2. 进入【图床设置】
  3. 选择【GitHub】
  4. 填写相同配置信息

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 + 自定义域名

适合高级用户:

  1. 启用 GitHub Pages
  2. 绑定自定义域名
  3. 配置 CNAME 记录

最终 URL:

https://images.yourdomain.com/images/photo.jpg

高级配置技巧

1. 图片自动压缩

使用 PicList 内置压缩:

  1. 打开 PicList
  2. 进入【上传设置】
  3. 启用【图片压缩】
  4. 配置压缩参数:
    • 质量:80%
    • 最大宽度:1920px
    • 格式转换:WebP(可选)

效果:

原图: 2.5 MB → 压缩后: 350 KB
节省空间: 86%
加载速度: 提升 7 倍

2. 智能重命名

避免文件名冲突:

javascript
// 重命名规则示例
{year}/{month}/{timestamp}_{random}.png

// 实际效果
2024/01/1705123456_abc123.png

配置方法:

  1. PicList → 【上传设置】
  2. 启用【自动重命名】
  3. 选择命名规则

3. 批量上传

操作步骤:

  1. 选中多张图片
  2. 拖拽到 PicGo/PicList
  3. 等待批量上传完成
  4. 一键复制所有链接

快捷键:

  • Ctrl + V:粘贴上传剪贴板图片
  • Ctrl + Shift + V:粘贴并复制链接
  • Ctrl + A:全选上传历史

4. 快捷键配置

PicGo 快捷键设置:

  1. 进入【快捷键设置】
  2. 配置常用操作:
    • 截图上传:Ctrl + Alt + U
    • 粘贴上传:Ctrl + Alt + V
    • 复制最后链接:Ctrl + Alt + C

配合截图工具:

  • Windows: Snipaste + PicGo
  • macOS: Shottr + PicGo
  • Linux: Flameshot + PicGo

Markdown 中使用

标准格式

markdown
![图片描述](https://cdn.jsdelivr.net/gh/username/repo@main/images/photo.jpg)

HTML 格式(支持更多属性)

html
<img 
  src="https://cdn.jsdelivr.net/gh/username/repo@main/images/photo.jpg" 
  alt="图片描述"
  width="800"
  loading="lazy"
/>

VitePress 特殊语法

markdown
![图片描述](url){width=600}

常见问题排查

问题 1:上传失败 - 404 Not Found

可能原因:

  1. 仓库名填写错误
  2. Token 权限不足
  3. 仓库不存在

解决方案:

bash
# 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:图片无法访问

可能原因:

  1. 仓库设置为 Private
  2. CDN 缓存未刷新
  3. 网络问题

解决方案:

bash
# 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:上传速度慢

优化方案:

  1. 启用图片压缩
  2. 使用 CDN 加速
  3. 检查网络连接
  4. 避开高峰时段

问题 4:Token 泄露怎么办?

紧急处理:

bash
# 1. 立即删除泄露的 Token
# GitHub → Settings → Developer settings → Tokens → Delete

# 2. 生成新 Token
# 按照之前的步骤重新生成

# 3. 更新 PicGo 配置
# 替换为新 Token

# 4. 检查是否有异常提交
# GitHub → Repository → Insights → Traffic

问题 5:存储空间不足

GitHub 限制:

  • 单个仓库:1GB(软限制)
  • 单个文件:100MB
  • 推荐单文件:<50MB

解决方案:

bash
# 1. 清理旧图片
# 手动删除不需要的文件

# 2. 压缩现有图片
# 使用 TinyPNG 等工具

# 3. 创建新仓库
# 分散存储到多个仓库

# 4. 使用 Git LFS(不推荐)
# 会增加复杂度

性能优化建议

1. 图片格式选择

格式适用场景压缩率兼容性
WebP网页展示⭐⭐⭐⭐⭐现代浏览器
PNG透明背景⭐⭐⭐全部支持
JPG照片⭐⭐⭐⭐全部支持
SVG图标/图表⭐⭐⭐⭐⭐现代浏览器
GIF动图⭐⭐全部支持

推荐:

  • 📸 照片:JPG(质量 80%)
  • 🎨 截图:PNG 或 WebP
  • 📊 图表:SVG
  • 🎬 动图:GIF 或 WebP

2. 图片尺寸优化

bash
# 推荐尺寸
博客配图: 1200x630 px (OG 图片标准)
文章插图: 800x600 px
缩略图: 400x300 px
头像/Logo: 256x256 px

3. 懒加载

html
<!-- 添加 loading="lazy" 属性 -->
<img src="..." alt="..." loading="lazy" />

备份与迁移

备份仓库

bash
# 克隆整个仓库
git clone https://github.com/username/repo.git

# 打包备份
tar -czf image-backup.tar.gz repo/

迁移到新仓库

bash
# 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 搭建图床的优势:

  1. 完全免费:无需支付任何费用
  2. 稳定可靠:依托 GitHub 基础设施
  3. 全球加速:CDN 覆盖 worldwide
  4. 易于管理:图形化工具操作简单
  5. 版本控制:Git 管理图片历史
  6. 无缝集成:完美支持 Markdown

关键步骤回顾:

bash
1. 创建 Public 仓库
2. 生成 Personal Access Token
3. 安装 PicGo/PicList
4. 配置 GitHub 图床
5. 设置 CDN 加速(可选)
6. 测试上传并使用

下一步学习:

开始你的免费高速图床之旅吧!🚀✨