零成本搭建私人图床教程:CloudFlare R2 + PicGo 完整方案 🚀
前言
图片托管服务在现代内容创作中扮演着重要角色。无论是技术博客、文档编写,还是在线教程制作,都离不开可靠的图片存储和分发系统。本教程将详细介绍如何利用 CloudFlare R2 的免费额度和开源工具 PicGo,搭建一个专业级的私人图床系统,让你的图片管理更加高效和经济。
优势亮点
-
零成本:充分利用 CloudFlare R2 的免费额度
-
高性能:依托 CloudFlare 全球 CDN 网络
-
可靠性:企业级的存储服务保障
-
易用性:PicGo 提供直观的图片管理界面
-
扩展性:支持自定义域名和多种上传方式
技术选型说明
组件 | 说明 | 选择理由 |
---|---|---|
CloudFlare R2 | 对象存储服务 | 免费额度慷慨、全球CDN加速、可靠性高 |
PicGo or Piclist | 图床管理工具 | 开源免费、功能丰富、插件生态完善、跨平台支持 |
前置要求
-
具备基本的命令行操作能力
-
拥有信用卡用于 CloudFlare 账号验证(不会产生实际费用)
-
能够访问 GitHub(用于下载 PicGo)
基础概念
什么是图床? 🖼️
图床是一种图片托管服务,可以将图片上传到服务器并生成外链,方便在各种平台引用。
主流的图床方案包括:
方案类型 | 优点 | 缺点 |
---|---|---|
VPS自建 | 完全可控、空间大 | 需要维护服务器、迁移麻烦 |
云存储(oss)+CDN(需备案) | 稳定性高、访问快 | 免费额度有限、大多需要付费 |
GitHub+CDN(JsDelivr) | 稳定可靠、免费 | 速度一般 |
免费的图床储存网站 | 免费 | 定期对图片进行清理、会导致数据丢失 |
CloudFlare R2 简介 ☁️
CloudFlare R2 是一款对象存储服务,提供以下免费额度:
-
存储空间:每月10GB免费存储额度
-
操作次数:
-
Class A操作(读取/下载):每月100万次免费
-
Class B操作(写入/上传):每月1000万次免费
-
-
出站流量:每月完全免费
PicGo工具介绍 🛠️
PicGo 是一款优秀的图床工具,支持:
- 多种上传方式(拖拽、剪贴板、URL等)
- 多种链接格式(Markdown、HTML、URL)
- 拥有丰富的插件生态
实现流程
搭建步骤
1. 准备工作 📝
需要准备:
- GitHub 账号
- CloudFlare 账号(需要信用卡验证)
- PicGo 客户端
2. 配置 CloudFlare R2 💾
-
登录 CloudFlare 控制台
-
开通 R2 服务
需要绑定一种支付方式(不扣费,只是用来选择支付方式 —> 信用卡,推荐使用
Paypal
)
Paypal(我选择的是在Paypal官网绑定了一张目前不使用的建设银行卡)
-
创建存储桶:
存储桶名称: [自定义] 区域: 自动(推荐) 存储类型: 标准
信用卡绑定成功后,左侧才会出现
创建存储桶
的选项
下方点击「创建存储桶」
如果数据一般都是在国内访问的话,可以把桶放在亚太地区。
桶创建成功后,可以直接从本地拖拽上传,至此,你完全可以把它当成一个网盘使用!
上传一个图片测试一下
-
自定义域名(两种方式)
- 第一种方式(安全)
- 点击设置
- 点击连接域
- 输入自己的域名(需要认证)后,点击继续
- 点击连接域
- 点击设置
- 第二种方式(简单)
- 点击允许访问
- 输入
allow
后点击允许
- 之后就可以利用这个域名进行公网访问桶里的资源(不安全)
- 点击允许访问
3. 获取 API 凭证 🔑
-
在 R2 控制台创建 API 令牌
输入令牌名称,「配置访问权限」这里可选择管理员读和写
或对象读和写
前者权限大,后者适用于特定的桶(推荐)
-
R2 Token 成功创建后,记录以下S3 API 相关信息:
- Access Key ID
- Secret Access Key
- S3 API Endpoint
4. 配置 PicGo🔧
-
安装 PicGo
访问https://github.com/Molunerfinn/PicGo/releases
选择对应的版本进行安装 -
安装 S3 插件(用来登录S3的图床)
推荐其余插件:
compress-next
:用来压缩图片至webp
watermark
:给图片打水印
autoback
:用来备份图床安装好后,里面就新增了amazon S3的图床设置
-
配置存储参数:
应用密钥 ID: [填写 R2 API 中的 Access Key ID(访问密钥 ID)] 应用密钥: [填写 R2 API 中的Secret Access Key(机密访问密钥)] 桶名: [填写 R2 中创建的 Bucket 名称,如我创建R2的桶的名字 image] 上传文件路径: [上传到 R2 中的文件路径,可以选择使用 {fileName}保留原文件的文件名和扩展名] 地区: [region可以填 auto] 自定义节点: [填写 R2 API 中的「为 S3 客户端使用管辖权地特定的终结点」,即 xxx.r2.cloudflarestorage.com格式的 S3 Endpoint] 拒绝无效TLS证书连接 :[yes开启,如果出现证书错误可以关闭] ACL访问控制列表:[public-read] ForcePathStyle:[no关闭,否则会在最终路径里面显示有桶名]https://pub-e4fad9439e6a49a187c01cd111d90960.r2.dev/{path} 自定义输出URL模板: [填写 R2 公开访问端点「自定义域 或 R2.dev 子域」/{path},即 xxx..r2.dev格式的 公共访问 URL 例:https://pub-e4fad9439e6d90960.r2.dev/{path}] Bucket前缀:[no关闭]
完成上述配置后,我们就可以在「上传区」直接拖入文件进行图片上传了,如上传后显示无误则为配置成功,生成的链接会自动在系统剪贴板中,直接在需要的地方粘贴即可。
5. 优化配置 ⚙️
- 配置缓存规则
- 设置防盗链
- 配置自定义域名(可选)
- CORS 策略
Amazon S3 API 兼容性说明
Amazon Simple Storage Service (S3),是 Amazon 提供的对象存储服务,S3 API 支持使用 RESTful API 请求访问 Amazon S3,所以在业界使用非常广泛, CloudFlare R2 也完全兼容 Amazon S3 API,这意味着我们可以使用成熟的 S3 生态系统中的工具和库。以下是S3
核心特性:
API 架构
{"协议": "RESTful HTTP","认证方式": "AWS Signature V4","数据格式": "XML/JSON","支持操作": ["对象管理(上传、下载、删除)","存储桶配置","访问控制","元数据管理"]}
主要优势
-
广泛兼容性
-
支持主流的 S3 客户端工具
-
可直接使用现有的 S3 SDK
-
便于从其他 S3 兼容存储迁移
-
-
标准化接口
-
RESTful API 设计
-
统一的认证机制
-
标准的错误处理
-
-
生态系统支持
-
丰富的第三方工具支持
-
完善的开发者文档
-
活跃的社区资源
-
S3 访问控制列表(ACL)配置说明
-
private(私有访问)
- 只有对象所有者可以读写该对象
- 其他任何人都无法访问,包括匿名用户
- 适用场景:存储私密文件、敏感数据等需要严格控制访问的内容
-
public-read(公开读取)✨
- 对象所有者拥有完整的读写权限
- 任何人(包括匿名用户)都可以读取该对象
- 适用场景:博客图片、公开文档、网站资源等需要公开访问的内容
-
public-read-write(公开读写)
- 对象所有者拥有完整的读写权限
- 任何人都可以读取和写入该对象
- 适用场景:需要让用户上传内容的公共存储空间
- 注意:这是最开放的权限设置,使用时需要特别谨慎,因为它允许任何人修改你的文件
-
authenticated-read(认证用户读取)
- 对象所有者拥有完整的读写权限
- 只有经过 AWS 认证的用户可以读取对象
- 其他人无法访问
- 适用场景:在多个 AWS 账号之间共享资源,但不想完全公开
对于 PicGo 的图床功能,通常建议使用 public-read
,因为:
- 你需要图片能够被公开访问
- 但只允许你自己(所有者)修改或删除图片
- 这样可以保证图片在博客、文档等地方正常显示,同时保持基本的安全性
💡 安全提示:虽然文件是公开可读的,但通过精心设计的文件命名和目录结构,可以进一步提升资源访问的安全性。
Markdown集成
配合 Typora 等 Markdown 编辑器使用:
- 在Typora中设置PicGo为图片上传工具
- 复制粘贴图片自动上传并插入链接
- 支持图片预览和管理
总结 📝
通过 CloudFlare R2 + PicGo 的组合,我们成功搭建了一个现代化的图床系统。让我们回顾其核心优势:
✨ 完全免费的存储额度 + 🚀 无限制的 CDN 带宽 + 🛠️ 无需服务器维护成本 + 🔒 安全可靠
适用场景
-
个人博主:管理博客图片资源
-
技术文档:存储教程截图和示例
-
开发团队:共享项目相关图片
-
内容创作:管理创作素材库
参考资料 📚
- 搭建免费高速图床 CLoudFlare R2 +PicGo方案-工程师焱记_picgo autoback 插件-CSDN博客
- 【白嫖 Cloudflare】之免费图床搭建:PicGo + Cloudflare R2,手把手教_r2.dev-CSDN博客
希望这份教程能帮助你搭建属于自己的图床!如果遇到问题,欢迎在评论区讨论交流。 🤝