关于我的图床创建过程
2025-05-28 14:00
创建图床这事儿,说简单也简单,说复杂也有坑。这篇文章记录我选择并实现 GitHub + jsDelivr 图床方案的整个过程,供你参考,也供我以后回顾。
为什么我需要一个图床?
创建完博客后我才想起需要展示一些图片和视频,但并不想花太多精力去搭建一个图床
最开始我是想直接把图片放进博客仓库,但很快发现几个问题:
- 图片多了之后,仓库体积变大,拉取和部署都可能会变慢了。
- 图片路径不统一,管理起来也麻烦。
- Git 仓库天生不是为了存大量图片设计的。
于是,我开始考虑搭一个独立图床,专门存放博客用图,既清晰又高效。
图床方案大盘点(和我为什么没选它们)
我查了一圈,目前流行的图床方案包括但不限于这些:
图床方案 | 优点 | 缺点 |
---|---|---|
七牛云 | 稳定、支持 CDN | 需要实名认证、配置较繁琐 |
腾讯云 COS | 可控性强、速度快 | 有一定成本 |
又拍云 | 灵活、开发者友好 | 免费额度有限,配置略复杂 |
Cloudflare | 免费 | 有免费额度,但是需要绑定国外信用卡 |
GitHub + jsDelivr | 免费、简单、国内访问也快 | 文件不可修改(CDN缓存) |
我最终选择了 GitHub + jsDelivr,因为它:
- 完全免费
- 无需备案、国内可访问
- 和我已有的 GitHub 工作流无缝集成
我的图床是怎么搭起来的?
1. 创建图床专属 GitHub 仓库
新建了一个公开仓库,命名为 image-hosting
,专门用来存图片。
可以按分类建文件夹,比如:
URLblog/ projects/ avatar/
2. 配置 PicGo 上传(可选,但强烈推荐)
PicGo + PicGo 插件(picgo-plugin-github-plus
)来自动上传图片并生成 jsDelivr 链接。
配置的时候注意两点:
- 设置 GitHub Token,并赋予
repo
权限; - CDN 链接模板设置为:
URLhttps:/gh/你的用户名/你的仓库名@main/${path}
例如我的链接是这样的:
URLhttps:/gh/arafat813/image-hosting@main/blog/hello.png
只要用 PicGo 上传,自动生成链接,复制粘贴一条龙,非常丝滑。
3. 在 Markdown 中插入图片
写文章时直接贴 jsDelivr 链接即可:
MD
使用过程中遇到的问题
-
图片更新不及时?
jsDelivr 对同名文件有缓存,如果你替换了图片,建议更换文件名或加 query(如?t=20240528
)以绕开缓存。 -
大图片上传不了?
尽量控制在 5MB 以下,虽然 jsDelivr 支持最大 50MB,但大图片不利于加载。 -
仓库太乱怎么办?
建议按用途建文件夹,保持目录整洁,比如 blog/post1/xxx.png。
总结一下
如果你也在用 GitHub 写博客,或者你不想花钱但又希望图片能稳定加载,那么:
GitHub + jsDelivr 是一个非常省心的图床方案。
当然,如果你有更高的需求,比如图片处理、私密性控制,可能就要上云服务了。但对我目前来说,这套方案刚刚好。
后续我准备研究自动备份和 GitHub Action 自动上传,方便又安全,到时候会写个新文章分享经验
如果你也想搭建图床,希望我的经验能帮到你。
欢迎交流,一起成长。