追梦学习库

图床搭建实操手册:Cloudflare R2 & GitHub+jsDelivr

追梦君 64 阅读

图床搭建实操手册:Cloudflare R2 & GitHub+jsDelivr


方案一:Cloudflare R2 + PicGo(推荐,长期使用)

为什么选它?

  • 10GB 永久免费存储 + 出口流量完全不收费
  • 全球 CDN 加速,不怕被刷流量
  • 大厂 Cloudflare 运营,不会跑路
  • 兼容 S3 API,随时可迁移

第 1 步:注册 Cloudflare 账号

  1. 打开 https://dash.cloudflare.com/sign-up
  2. 用邮箱注册(推荐 Gmail/Outlook)
  3. 验证邮箱,登录进入控制台

第 2 步:开通 R2 服务(需绑卡验证,不扣费)

  1. 登录后,左侧菜单找到 R2
  2. 首次进入会提示绑定支付方式
  3. 点击「添加支付方式」
  4. 支持:信用卡(Visa/Mastercard)、PayPal虚拟信用卡(如 Depay)
  5. 填写后确认,这是身份验证,不会自动扣费
  6. 回到 R2 页面,点击「开通 R2 服务」

💡 没有信用卡?淘宝搜「Cloudflare 虚拟信用卡」或使用 Depay、OneKey Card 等虚拟卡服务。


第 3 步:创建存储桶(Bucket)

  1. 在 R2 页面点击 「创建存储桶」
  2. 填写配置:
配置项 推荐填写
存储桶名称 my-images(全局唯一,取个特别的)
位置 亚太地区(APAC),国内访问更快
存储类 标准(Standard)
  1. 点击「创建存储桶」

第 4 步:配置公开访问(最关键!)

4.1 方式一:用 r2.dev 子域名(测试用)

  1. 进入存储桶 → 设置(Settings)
  2. 找到 「R2.dev 子域」 → 点击「允许访问」
  3. 输入 allow 确认
  4. 你会得到一个域名:https://pub-xxxxxxxxxxxxxxxx.r2.dev
  5. 以后你的图片链接就是:https://pub-xxx.r2.dev/2025/07/xxx.png

⚠️ r2.dev 有访问频率限制,正式使用强烈建议绑自定义域名!

4.2 方式二:绑定自定义域名(强烈推荐)

前提:你得有一个域名,并且它的 DNS 已经托管到 Cloudflare。

💡 没有域名?去 NameSilo、Namecheap 买个便宜域名(几十块/年),或者用 Cloudflare Registrar 买(成本价)。

操作步骤:

  1. 进入存储桶 → 设置自定义域(Custom Domains)
  2. 点击「添加自定义域」
  3. 输入子域名,例如:img.yourdomain.com
  4. 点击「继续」→ Cloudflare 自动添加 DNS 记录
  5. 点击「连接域名」
  6. 等待几分钟 DNS 生效
  7. 你的图片链接变成:https://img.yourdomain.com/2025/07/xxx.png

验证 DNS 是否生效(可选):

nslookup img.yourdomain.com

第 5 步:测试存储桶是否正常

  1. 在存储桶内,点击「上传文件」
  2. 随便上传一张测试图片(如 test.png)
  3. 上传完成后点击文件,复制链接
  4. 在浏览器中打开链接,确认能正常显示

第 6 步:创建 API 令牌(给 PicGo 用的钥匙)

  1. R2 页面 → 概述 → 右侧找到 「管理 R2 API 令牌」
  2. 点击「创建 API 令牌」
  3. 配置:
配置项 选择
令牌名称 PicGo-Upload
权限 对象读和写(Object Read & Write)
作用范围 仅应用于特定存储桶 → 选择你刚创建的桶
  1. 点击「创建 API 令牌」

  2. ⚠️ 立即保存以下三个信息(只显示一次!)

Access Key ID:       xxxxxxxxxxxxxxxxxxxxxxxx
Secret Access Key:   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3 API 端点:         https://xxxxxxxxxxxx.r2.cloudflarestorage.com

强烈建议:复制到一个文本文件(如 r2-keys.txt)保存好!


第 7 步:安装 PicGo

  1. 下载地址:https://github.com/Molunerfinn/PicGo/releases
  2. 选对应平台:
    • Windows:PicGo-Setup-x.x.x.exe
    • macOS:PicGo-x.x.x.dmg
    • Linux:PicGo-x.x.x.AppImage
  3. 安装完成后打开

第 8 步:安装 S3 插件

  1. 打开 PicGo
  2. 左侧菜单 → 「插件设置」
  3. 搜索框输入:s3
  4. 找到 picgo-plugin-s3(作者:wayjam)→ 点击「安装」
  5. 安装成功后左侧会出现 「Amazon S3」 图床

💡 如果安装失败,检查是否装了 Node.js。去 https://nodejs.org 下载安装即可。


第 9 步:配置 PicGo 连接 R2

  1. PicGo → 「图床设置」「Amazon S3」

  2. 按照下表填写(关键参数):

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 否(关闭)
  1. 点击「确定」→ 设为默认图床

第 10 步:测试上传

  1. PicGo → 「上传区」
  2. 拖入一张图片(或 Ctrl+Shift+P 上传剪贴板)
  3. 上传成功后,右下角通知会显示链接
  4. 点击链接复制,粘贴到浏览器测试
  5. 能正常打开就成功了!🎉

第 11 步:进阶优化

11.1 设置缓存(大幅减少请求次数)

  1. Cloudflare 控制台 → 选择你的域名
  2. 左侧 「规则」「缓存规则」
  3. 创建规则:
配置项
匹配 URL img.yourdomain.com/*
缓存级别 缓存所有内容
边缘缓存 TTL 6 个月
浏览器缓存 TTL 1 个月

11.2 防盗链(防止别人直接用你的图)

  1. Cloudflare → 「安全性」「WAF」「自定义规则」
  2. 创建规则:如果 Referer 不包含 yourdomain.com,则阻止

11.3 推荐升级:PicList(PicGo 增强版)

PicList 是 PicGo 的二次开发版本,额外支持:

  • 图片管理(在线删除、重命名)
  • 图片压缩
  • 格式转换
  • 水印

下载:https://github.com/Kuingsmile/PicList


方案二:GitHub + jsDelivr + PicGo(零门槛)

为什么选它?

  • 完全免费,无需信用卡
  • 配置超简单,10 分钟搞定
  • jsDelivr CDN 全球加速
  • 适合轻量使用、技术写作

第 1 步:注册 GitHub 账号

如果已有 GitHub 账号,跳过此步。

  1. 打开 https://github.com/signup
  2. 用邮箱注册,验证后登录

第 2 步:创建图片仓库

  1. 登录 GitHub,点击右上角 「+」「New repository」
  2. 填写:
配置项
仓库名称 img(或 imagespicbed 等)
描述 图床仓库
可见性 ⚠️ 必须选 Public(公开)
README ✅ 勾选(方便后续管理)
  1. 点击 「Create repository」

第 3 步:生成 Personal Access Token

  1. GitHub 右上角头像 → 「Settings」
  2. 左侧最底部 → 「Developer settings」
  3. 左侧 → 「Personal access tokens」「Tokens (classic)」
  4. 点击 「Generate new token」「Generate new token (classic)」
  5. 配置:
配置项
Note picgo-token(备注名,随便写)
Expiration No expiration(或自定义,但过期需重新生成)
权限 只勾选 repo(仓库全部权限)
  1. 滑到底部,点击 「Generate token」
  2. ⚠️ 立即复制 token(格式:ghp_xxxxxxxxxxxxxxxxxxxx),只显示一次!

第 4 步:安装 PicGo

同方案一第 7 步。


第 5 步:配置 GitHub 图床

  1. PicGo → 「图床设置」「GitHub」

  2. 填写:

配置项 填写内容 示例
设定仓库名 用户名/仓库名 zhangsan/img
设定分支 main main(2020 年后默认是 main)
设定 Token 粘贴刚才的 token ghp_xxxxxxxxxxxx
设定存储路径 images/ 图片放 images 子目录
设定自定义域名 jsDelivr CDN 地址 见下方
  1. 自定义域名 填写(这是加速的关键):
https://cdn.jsdelivr.net/gh/你的GitHub用户名/仓库名@分支

示例(假设你的用户名是 zhangsan,仓库名 img,分支 main):

https://cdn.jsdelivr.net/gh/zhangsan/img@main
  1. 点击「确定」→ 设为默认图床

第 6 步:测试上传

  1. PicGo → 「上传区」
  2. 拖入图片(或 Ctrl+Shift+P 剪贴板上传)
  3. 上传成功,链接自动复制
  4. 粘贴到浏览器测试

你应该得到类似这样的链接:

https://cdn.jsdelivr.net/gh/zhangsan/img@main/images/202507031002.png

能打开就成功了!🎉


第 7 步:日常使用

快捷键(超方便)

操作 快捷键
剪贴板上传 Ctrl + Shift + P(Windows/Linux)
Cmd + Shift + P(macOS)
拖拽上传 直接拖文件到 PicGo 窗口

配合 Typora 使用(写作神器)

  1. Typora → 文件偏好设置图像
  2. 插入时 → 选择「上传图片」
  3. 上传服务 → 选择「PicGo (app)」
  4. 路径:选 PicGo 安装路径

配置后,Typora 里粘贴截图会自动上传到图床并替换为 CDN 链接!

配合 Obsidian 使用

  1. 安装插件:Image Auto Upload Plugin
  2. 插件设置中选 PicGo
  3. 配置同上

第 8 步:Mac 用户推荐 uPic

如果你用 Mac,uPic 比 PicGo 更好用

  • ✅ 一键截图 + 上传(PicGo 需要两步)
  • ✅ 原生支持 GitHub + jsDelivr CDN
  • ✅ 更美观的界面
  1. 下载:https://github.com/gee1k/uPic/releases
  2. 安装后 → 偏好设置 → 图床 → 增加 → 选择 GitHub
  3. 填写用户名、仓库名、分支、Token
  4. 勾选「使用 jsDelivr CDN 加速访问」
  5. 点击「验证」测试

两个方案对比

对比维度 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 方案

踩坑提醒

  1. R2 的 Access Key 只显示一次,务必立即保存!
  2. GitHub Token 也只显示一次,同样立即保存!
  3. R2 文件路径开头不要加 /,否则上传失败
  4. GitHub 仓库必须 Public,否则 jsDelivr 无法访问
  5. jsDelivr 国内偶尔被 DNS 污染,可备用 https://fastly.jsdelivr.net/gh/...https://gcore.jsdelivr.net/gh/...
  6. 自定义域名如果国内访问慢,可在 Cloudflare 开启 Argo Tunnel(付费)或用国内 CDN 套一层
分享到:

发表评论

请先 登录 再评论