图床搭建实操手册:Cloudflare R2 & GitHub+jsDelivr
图床搭建实操手册:Cloudflare R2 & GitHub+jsDelivr
方案一:Cloudflare R2 + PicGo(推荐,长期使用)
为什么选它?
- 10GB 永久免费存储 + 出口流量完全不收费
- 全球 CDN 加速,不怕被刷流量
- 大厂 Cloudflare 运营,不会跑路
- 兼容 S3 API,随时可迁移
第 1 步:注册 Cloudflare 账号
- 打开 https://dash.cloudflare.com/sign-up
- 用邮箱注册(推荐 Gmail/Outlook)
- 验证邮箱,登录进入控制台
第 2 步:开通 R2 服务(需绑卡验证,不扣费)
- 登录后,左侧菜单找到 R2
- 首次进入会提示绑定支付方式
- 点击「添加支付方式」
- 支持:信用卡(Visa/Mastercard)、PayPal、虚拟信用卡(如 Depay)
- 填写后确认,这是身份验证,不会自动扣费
- 回到 R2 页面,点击「开通 R2 服务」
💡 没有信用卡?淘宝搜「Cloudflare 虚拟信用卡」或使用 Depay、OneKey Card 等虚拟卡服务。
第 3 步:创建存储桶(Bucket)
- 在 R2 页面点击 「创建存储桶」
- 填写配置:
| 配置项 | 推荐填写 |
|---|---|
| 存储桶名称 | my-images(全局唯一,取个特别的) |
| 位置 | 亚太地区(APAC),国内访问更快 |
| 存储类 | 标准(Standard) |
- 点击「创建存储桶」
第 4 步:配置公开访问(最关键!)
4.1 方式一:用 r2.dev 子域名(测试用)
- 进入存储桶 → 设置(Settings)
- 找到 「R2.dev 子域」 → 点击「允许访问」
- 输入
allow确认 - 你会得到一个域名:
https://pub-xxxxxxxxxxxxxxxx.r2.dev - 以后你的图片链接就是:
https://pub-xxx.r2.dev/2025/07/xxx.png
⚠️ r2.dev 有访问频率限制,正式使用强烈建议绑自定义域名!
4.2 方式二:绑定自定义域名(强烈推荐)
前提:你得有一个域名,并且它的 DNS 已经托管到 Cloudflare。
💡 没有域名?去 NameSilo、Namecheap 买个便宜域名(几十块/年),或者用 Cloudflare Registrar 买(成本价)。
操作步骤:
- 进入存储桶 → 设置 → 自定义域(Custom Domains)
- 点击「添加自定义域」
- 输入子域名,例如:
img.yourdomain.com - 点击「继续」→ Cloudflare 自动添加 DNS 记录
- 点击「连接域名」
- 等待几分钟 DNS 生效
- 你的图片链接变成:
https://img.yourdomain.com/2025/07/xxx.png
验证 DNS 是否生效(可选):
nslookup img.yourdomain.com
第 5 步:测试存储桶是否正常
- 在存储桶内,点击「上传文件」
- 随便上传一张测试图片(如 test.png)
- 上传完成后点击文件,复制链接
- 在浏览器中打开链接,确认能正常显示
第 6 步:创建 API 令牌(给 PicGo 用的钥匙)
- R2 页面 → 概述 → 右侧找到 「管理 R2 API 令牌」
- 点击「创建 API 令牌」
- 配置:
| 配置项 | 选择 |
|---|---|
| 令牌名称 | PicGo-Upload |
| 权限 | 对象读和写(Object Read & Write) |
| 作用范围 | 仅应用于特定存储桶 → 选择你刚创建的桶 |
-
点击「创建 API 令牌」
-
⚠️ 立即保存以下三个信息(只显示一次!):
Access Key ID: xxxxxxxxxxxxxxxxxxxxxxxx
Secret Access Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3 API 端点: https://xxxxxxxxxxxx.r2.cloudflarestorage.com
强烈建议:复制到一个文本文件(如 r2-keys.txt)保存好!
第 7 步:安装 PicGo
- 下载地址:https://github.com/Molunerfinn/PicGo/releases
- 选对应平台:
- Windows:
PicGo-Setup-x.x.x.exe - macOS:
PicGo-x.x.x.dmg - Linux:
PicGo-x.x.x.AppImage
- Windows:
- 安装完成后打开
第 8 步:安装 S3 插件
- 打开 PicGo
- 左侧菜单 → 「插件设置」
- 搜索框输入:
s3 - 找到
picgo-plugin-s3(作者:wayjam)→ 点击「安装」 - 安装成功后左侧会出现 「Amazon S3」 图床
💡 如果安装失败,检查是否装了 Node.js。去 https://nodejs.org 下载安装即可。
第 9 步:配置 PicGo 连接 R2
-
PicGo → 「图床设置」 → 「Amazon S3」
-
按照下表填写(关键参数):
| PicGo 字段 | 填写内容 | 说明 |
|---|---|---|
| 应用密钥 ID | 粘贴 Access Key ID | 第 6 步保存的 |
| 应用密钥 | 粘贴 Secret Access Key | 第 6 步保存的 |
| 桶 | my-images |
你的存储桶名 |
| 文件路径 | {year}/{month}/{md5}.{extName} |
按年月+MD5 命名,开头不要加 / |
| 自定义节点 | https://xxxxx.r2.cloudflarestorage.com |
第 6 步保存的 S3 端点 |
| 自定义域名 | https://img.yourdomain.com |
你的自定义域名(带 https://) |
| ACL 访问控制 | public-read |
公开可读 |
| 上传方式 | 路径式 | |
| 拒绝无效 TLS | 否(关闭) |
- 点击「确定」→ 设为默认图床
第 10 步:测试上传
- PicGo → 「上传区」
- 拖入一张图片(或 Ctrl+Shift+P 上传剪贴板)
- 上传成功后,右下角通知会显示链接
- 点击链接复制,粘贴到浏览器测试
- 能正常打开就成功了!🎉
第 11 步:进阶优化
11.1 设置缓存(大幅减少请求次数)
- Cloudflare 控制台 → 选择你的域名
- 左侧 「规则」 → 「缓存规则」
- 创建规则:
| 配置项 | 值 |
|---|---|
| 匹配 URL | img.yourdomain.com/* |
| 缓存级别 | 缓存所有内容 |
| 边缘缓存 TTL | 6 个月 |
| 浏览器缓存 TTL | 1 个月 |
11.2 防盗链(防止别人直接用你的图)
- Cloudflare → 「安全性」 → 「WAF」 → 「自定义规则」
- 创建规则:如果
Referer不包含yourdomain.com,则阻止
11.3 推荐升级:PicList(PicGo 增强版)
PicList 是 PicGo 的二次开发版本,额外支持:
- 图片管理(在线删除、重命名)
- 图片压缩
- 格式转换
- 水印
下载:https://github.com/Kuingsmile/PicList
方案二:GitHub + jsDelivr + PicGo(零门槛)
为什么选它?
- 完全免费,无需信用卡
- 配置超简单,10 分钟搞定
- jsDelivr CDN 全球加速
- 适合轻量使用、技术写作
第 1 步:注册 GitHub 账号
如果已有 GitHub 账号,跳过此步。
- 打开 https://github.com/signup
- 用邮箱注册,验证后登录
第 2 步:创建图片仓库
- 登录 GitHub,点击右上角 「+」 → 「New repository」
- 填写:
| 配置项 | 值 |
|---|---|
| 仓库名称 | img(或 images、picbed 等) |
| 描述 | 图床仓库 |
| 可见性 | ⚠️ 必须选 Public(公开) |
| README | ✅ 勾选(方便后续管理) |
- 点击 「Create repository」
第 3 步:生成 Personal Access Token
- GitHub 右上角头像 → 「Settings」
- 左侧最底部 → 「Developer settings」
- 左侧 → 「Personal access tokens」 → 「Tokens (classic)」
- 点击 「Generate new token」 → 「Generate new token (classic)」
- 配置:
| 配置项 | 值 |
|---|---|
| Note | picgo-token(备注名,随便写) |
| Expiration | 选 No expiration(或自定义,但过期需重新生成) |
| 权限 | 只勾选 repo(仓库全部权限) |
- 滑到底部,点击 「Generate token」
- ⚠️ 立即复制 token(格式:
ghp_xxxxxxxxxxxxxxxxxxxx),只显示一次!
第 4 步:安装 PicGo
同方案一第 7 步。
第 5 步:配置 GitHub 图床
-
PicGo → 「图床设置」 → 「GitHub」
-
填写:
| 配置项 | 填写内容 | 示例 |
|---|---|---|
| 设定仓库名 | 用户名/仓库名 |
zhangsan/img |
| 设定分支 | main |
main(2020 年后默认是 main) |
| 设定 Token | 粘贴刚才的 token | ghp_xxxxxxxxxxxx |
| 设定存储路径 | images/ |
图片放 images 子目录 |
| 设定自定义域名 | jsDelivr CDN 地址 | 见下方 |
- 自定义域名 填写(这是加速的关键):
https://cdn.jsdelivr.net/gh/你的GitHub用户名/仓库名@分支
示例(假设你的用户名是 zhangsan,仓库名 img,分支 main):
https://cdn.jsdelivr.net/gh/zhangsan/img@main
- 点击「确定」→ 设为默认图床
第 6 步:测试上传
- PicGo → 「上传区」
- 拖入图片(或 Ctrl+Shift+P 剪贴板上传)
- 上传成功,链接自动复制
- 粘贴到浏览器测试
你应该得到类似这样的链接:
https://cdn.jsdelivr.net/gh/zhangsan/img@main/images/202507031002.png
能打开就成功了!🎉
第 7 步:日常使用
快捷键(超方便)
| 操作 | 快捷键 |
|---|---|
| 剪贴板上传 | Ctrl + Shift + P(Windows/Linux)Cmd + Shift + P(macOS) |
| 拖拽上传 | 直接拖文件到 PicGo 窗口 |
配合 Typora 使用(写作神器)
- Typora → 文件 → 偏好设置 → 图像
- 插入时 → 选择「上传图片」
- 上传服务 → 选择「PicGo (app)」
- 路径:选 PicGo 安装路径
配置后,Typora 里粘贴截图会自动上传到图床并替换为 CDN 链接!
配合 Obsidian 使用
- 安装插件:Image Auto Upload Plugin
- 插件设置中选 PicGo
- 配置同上
第 8 步:Mac 用户推荐 uPic
如果你用 Mac,uPic 比 PicGo 更好用:
- ✅ 一键截图 + 上传(PicGo 需要两步)
- ✅ 原生支持 GitHub + jsDelivr CDN
- ✅ 更美观的界面
- 下载:https://github.com/gee1k/uPic/releases
- 安装后 → 偏好设置 → 图床 → 增加 → 选择 GitHub
- 填写用户名、仓库名、分支、Token
- 勾选「使用 jsDelivr CDN 加速访问」
- 点击「验证」测试
两个方案对比
| 对比维度 | Cloudflare R2 | GitHub + jsDelivr |
|---|---|---|
| 费用 | 免费(需绑卡验证) | 完全免费 |
| 存储 | 10 GB | 仓库 ≤ 1GB |
| 流量 | 免费且无限 | CDN 免费 |
| 速度 | 全球 CDN,国内 1-3s | 国内偶有波动 |
| 稳定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 搭建难度 | 中等(30 分钟) | 简单(10 分钟) |
| 自定义域名 | ✅ 支持 | ❌ 只能用 jsDelivr |
| 数据迁移 | S3 兼容,随时迁 | 绑在 GitHub |
| 跑路风险 | 极低 | 低(jsDelivr 被墙风险) |
最终建议
| 你的情况 | 推荐 |
|---|---|
| 有信用卡/PayPal,想要最稳的方案 | Cloudflare R2 |
| 没有信用卡,想快速用起来 | GitHub + jsDelivr |
| 追求极致,两个都要 | R2 主力 + GitHub 备份 |
| 有 NAS | 前两篇教程已包含 NAS 方案 |
踩坑提醒
- R2 的 Access Key 只显示一次,务必立即保存!
- GitHub Token 也只显示一次,同样立即保存!
- R2 文件路径开头不要加
/,否则上传失败 - GitHub 仓库必须 Public,否则 jsDelivr 无法访问
- jsDelivr 国内偶尔被 DNS 污染,可备用
https://fastly.jsdelivr.net/gh/...或https://gcore.jsdelivr.net/gh/... - 自定义域名如果国内访问慢,可在 Cloudflare 开启 Argo Tunnel(付费)或用国内 CDN 套一层
发表评论