为什么是 R2 + PicList
Cloudflare R2 基于 S3 协议,免费额度对个人用户来说几乎用不完:10 GB 存储、每月 100 万次写操作、1000 万次读操作。超出部分价格也很低,存储 $0.015/GB/月,Class A 操作 $4.50/百万次。关键是下行流量零费用,这对图床场景来说就是白嫖。
PicList 是 PicGo 的增强分支,原生支持 R2,不用装插件,还自带 WebP 转换和云端相册管理。PicGo 搭配 R2 需要装插件、配参数,PicList 开箱即用。新用户直接选 PicList,省事。
Cloudflare R2 配置
创建 Bucket + 生成 API Token
- 登录 Cloudflare Dashboard,进入左侧 R2 Object Storage,点击 Create bucket
- Bucket 名称建议简洁,比如
img或blog-images - 创建完成后,进入 R2 概览页 → Manage R2 API Tokens → Create API Token
- 权限选择 Object Read & Write,作用范围限定到刚才创建的 Bucket
创建成功后会拿到三个关键值:
- Access Key ID
- Secret Access Key
- Endpoint URL(格式:
https://<account_id>.r2.cloudflarestorage.com)
这里有个坑:Secret Access Key 只显示一次,关掉页面就没了。拿到后立刻存好。
绑定自定义域名
如果域名已经托管在 Cloudflare,绑定非常简单:进入 Bucket → Settings → Custom Domains → Connect Domain,输入子域名(比如 img.yourdomain.com),Cloudflare 会自动添加 DNS 记录并签发 SSL 证书。
域名没托管在 Cloudflare 也能用,在原 DNS 服务商添加 CNAME 记录指向 R2 提供的域名即可,只是没那么丝滑。
WAF 防护(可选但建议做)
防止有人恶意刷你的操作次数。进入域名的 Security → WAF,加两条规则:
- Rate Limiting:同一 IP 每分钟请求超过 100 次就 Block
- Referer 校验:只允许你自己的域名引用图片
PicList 客户端配置
连接 R2
到 PicList GitHub Releases 下载最新版安装。打开后进入图床设置,选择 Amazon S3(R2 兼容 S3 协议),填入之前保存的 Access Key ID、Secret Access Key 和 Endpoint URL。
存储路径模板推荐用 {year}/{month}/{md5},按月归档,用 MD5 做文件名避免重名,后续整理很清晰。
填好后点确认并设为默认图床,随便传一张图测试,能拿到链接就说明配置没问题。
WebP 自动转换
进入 PicList 设置 → 上传处理 → 图片预处理设置 → 图片格式选择 → 目标 WebP。开启后所有图片上传前自动转为 WebP。实测 500 KB 的 PNG 截图转换后通常在 100-150 KB,体积缩减约 70%。
相册管理
PicList 的相册功能可以直接读取 R2 Bucket 中的文件列表,相当于一个云端图片管理器。支持批量删除、搜索、一键复制 Markdown / HTML / URL 格式链接,比登录 Cloudflare Dashboard 方便得多。
Obsidian 集成
如果你用 Obsidian 写东西,可以做到粘贴图片自动上传:
- 安装社区插件 Image Auto Upload(作者 renmu123)
- 插件设置中将上传方式设为 PicList
- 确保 PicList 客户端在后台运行
配置完成后,在 Obsidian 里直接粘贴截图,插件自动调用 PicList 上传到 R2 并替换为远程链接。写作过程完全无感,这才是正确的工作流。
常见问题
图片访问 403? 最常见的原因是 Bucket 没开公开访问,或者自定义域名没正确绑定。进入 Bucket Settings 确认 Custom Domain 状态为 Active,检查是否开启了 Allow Public Access。
R2 什么时候会产生费用? 个人图床场景下很难触及免费额度上限。除非你的图片日均访问量达到几十万级别,否则基本不用担心。
进阶方向
这套方案配好之后基本就是零维护状态。如果后续想折腾,可以研究 Cloudflare Workers 做图片实时处理(裁剪、缩放),或者开启 Cloudflare 的 Image Resizing 按需生成不同尺寸。对于独立开发者来说,图床这种基础设施,配一次能用很久的方案才是好方案。