2026年免费对象存储和数据库推荐:Cloudflare R2、Supabase、Oracle Cloud 实战对比
从 VPS、域名到数据存储,个人项目如何做到低成本甚至零成本运行?
前言:真正烧钱的不是服务器,而是数据
很多人在搭建个人网站、博客或者小型 SaaS 项目时,第一关注点通常是:
- 买什么 VPS?
- 域名多少钱?
- 用什么框架?
但真正运行起来之后,你会发现:
服务器可能只需要几美元一个月,而数据存储和流量费用才是真正容易失控的地方。
例如:
- 图片越来越多,图床流量暴涨;
- 数据库备份占用大量空间;
- 文件下载次数增加导致 CDN 或对象存储费用上涨;
- 免费服务策略调整,突然开始收费。
这些问题我都踩过坑。
因此这篇文章记录一下我目前实际使用过、测试过,以及长期关注的免费存储和数据库方案。
本文主要介绍:
- 💾 个人博客图片应该存哪里
- 📦 文件备份如何低成本实现
- 🗄️ 免费数据库有哪些可靠选择
- ⚠️ 哪些“免费服务”其实隐藏着风险
目录
对象存储篇:文件和图片应该放哪里?
个人博客、图床、附件、备份文件,本质上都属于对象存储需求。
相比直接放 VPS:
- 扩容方便;
- 数据更安全;
- 可以配合 CDN;
- 不占用服务器磁盘。
一、Cloudflare R2 —— 我的博客图床方案 ⭐⭐⭐⭐⭐
推荐指数:★★★★★
使用状态:✅ 正在使用
适合场景:
- 博客图片
- 静态资源
- 文件分享
- 小型网站附件
为什么选择 Cloudflare R2?
在选择图床之前,我尝试过:
- SM.MS
- ImgBB
- Imgur
- AWS S3
这些方案各有优点,但都有明显问题:
第三方免费图床
优点:
- 上传方便;
- 不需要维护。
缺点:
- 数据不完全掌握在自己手里;
- 服务策略可能变化;
- 图片长期可靠性无法保证。
AWS S3
AWS S3 非常成熟,但对于个人博客来说:
最大的问题不是存储费用,而是:
出口流量费用。
博客图片被访问,本质就是下载。
如果文章突然被大量访问,流量费用可能远高于存储费用。
而 Cloudflare R2 最大的优势:
免费出口流量。
这对于图床场景非常重要。
Cloudflare R2 免费额度
目前个人使用基本够用:
| 项目 | 免费额度 |
|---|---|
| 存储 | 10GB/月 |
| Class A 操作(写入、列表等) | 100万次/月 |
| Class B 操作(读取) | 1000万次/月 |
| 出站流量 | 免费 |
对于个人博客:
- 几千张图片;
- 每天几千访问;
通常完全够用。
我的实际使用情况
我的博客:
- 图片存储:Cloudflare R2
- CDN:Cloudflare
- 静态网站:Cloudflare Pages
目前:
R2费用:$0
稳定运行,没有遇到数据丢失问题。
R2 图床搭建方式
完整流程:
- 创建 R2 Bucket;
- 配置公开访问或者 Worker 代理;
- 绑定自定义域名;
- 添加缓存策略;
- 配置防盗链。
之前写过完整教程:
Cloudflare R2 图床搭建与防盗链配置
使用 R2 需要注意的问题
1. 不建议直接暴露公开地址
很多人创建 R2 后直接使用:
https://xxx.r2.dev/image.jpg
这样虽然简单,但存在问题:
- 容易被爬虫扫描;
- 容易被别人盗链;
- 请求次数可能增加。
更推荐:
用户
↓
Cloudflare Worker
↓
R2 Bucket
通过 Worker:
- 验证 Referer;
- 限制访问;
- 增加缓存。
2. 注意 Worker 请求限制
如果使用 Worker 做图片代理,需要关注:
- 免费请求额度;
- 缓存命中率。
优化方式:
- 开启 CDN 缓存;
- 设置合理 Cache-Control;
- 减少回源请求。
二、Backblaze B2 —— 备份存储方案 ⭐⭐⭐⭐
推荐指数:★★★★
使用状态:考虑未来作为主力使用
Backblaze B2 是一个非常优秀的低成本对象存储。
免费额度
目前:
| 项目 | 免费额度 |
|---|---|
| 存储 | 10GB |
| 下载流量 | 每天约1GB |
| 上传 | 无限制 |
适合场景
相比 R2:
B2 更适合:
- 数据备份;
- 压缩包归档;
- 数据冷存储。
例如:
服务器
↓
restic
↓
Backblaze B2
可以实现:
- 自动备份;
- 历史版本管理;
- 增量同步。
B2 + Cloudflare
B2 曾经因为和 Cloudflare 的合作被大量推荐。
实际使用时需要注意:
- 访问方式;
- 流量策略;
- Cloudflare CDN 配置。
不要简单认为所有场景都永久零成本。
三、Oracle Cloud Object Storage —— 备份神器 ⭐⭐⭐
推荐指数:★★★
使用状态:✅ 用于备份
如果你已经拥有 Oracle Cloud 免费 VPS,那么对象存储也可以顺便使用。
免费额度:
- 10GB 标准存储;
- 额外 API 请求额度。
我的使用方式:
- 博客备份;
- 配置文件备份;
- 小型归档文件。
它的优势:
不是速度,而是:
免费且稳定。
四、不建议作为主要方案的免费图床
ImgBB / Imgur
推荐指数:
★★
优点:
- 免费;
- 上传简单;
- 无需维护。
缺点:
- 数据控制权不足;
- 可能删除内容;
- 无 SLA;
- 国内访问存在不确定性。
适合:
- 临时图片;
- 测试项目。
不建议:
- 博客核心图片;
- 长期文章资源。
数据库篇:业务数据应该放哪里?
对象存储解决的是:
图片、附件、备份文件放哪里?
而数据库解决的是:
用户、文章、业务数据放哪里?
对于个人项目来说,数据库选择比对象存储更复杂。
原因是:
- 数据库迁移成本更高;
- 免费套餐限制更多;
- 一旦选择错误,后期迁移比较麻烦。
下面介绍几个目前比较值得关注的免费数据库方案。
一、Supabase —— 当前最推荐的免费数据库方案 ⭐⭐⭐⭐⭐
数据库类型:PostgreSQL
推荐指数:★★★★★
使用状态:计划用于后续项目
Supabase 可以理解为:
Firebase 的开源替代方案。
它不仅提供 PostgreSQL 数据库,还集成了:
- 用户认证;
- REST API;
- 实时订阅;
- 文件存储;
- Edge Functions。
对于个人开发者来说,非常方便。
免费额度
Supabase 免费套餐主要包含:
| 项目 | 免费额度 |
|---|---|
| PostgreSQL 数据库 | 500MB |
| 文件存储 | 1GB |
| 带宽 | 有限额度 |
| API访问 | 有限额度 |
对于:
- 博客;
- Todo 应用;
- 小型 SaaS;
基本够用。
需要注意:
免费项目长时间没有活动时,可能会进入暂停状态。
如果用于生产项目,需要关注官方政策变化。
为什么推荐 Supabase?
1. 开箱即用的 API
创建数据库表后,可以直接通过 SDK 操作:
const { data } = await supabase
.from('users')
.select('*')
不需要自己编写大量 CRUD 接口。
2. 自带用户认证
支持:
- Email 登录;
- OAuth;
- 魔法链接。
例如:
- GitHub 登录;
- Google 登录;
都可以快速实现。
3. 实时数据同步
例如聊天应用:
用户发送消息:
数据库变化
↓
Supabase Realtime
↓
客户端立即更新
适合:
- 评论系统;
- 在线协作;
- 实时通知。
4. PostgreSQL 生态完整
相比一些简单数据库:
PostgreSQL 拥有:
- 强大的 SQL 能力;
- 丰富扩展;
- JSON 支持;
- 全文搜索。
未来如果迁移:
也比较容易。
二、MongoDB Atlas —— NoSQL 数据库首选 ⭐⭐⭐⭐
数据库类型:MongoDB
推荐指数:★★★★
使用状态:⚠️ 曾经使用过
MongoDB Atlas 是 MongoDB 官方云服务。
适合:
- JSON 数据;
- 爬虫数据;
- 日志数据;
- 快速原型。
免费额度
M0 免费集群:
- 512MB 存储;
- 共享计算资源;
- 有连接数限制。
512MB 对测试项目够用。
但是如果长期保存大量数据:
很快会遇到空间问题。
我的使用体验
之前做爬虫项目时使用过 MongoDB Atlas。
优点:
1. 数据结构灵活
不用提前设计复杂表结构:
{
"title":"文章标题",
"tags":[
"Java",
"Docker"
]
}
非常适合:
- 爬虫;
- 内容采集;
- 半结构化数据。
2. 开发速度快
相比传统数据库:
MongoDB 更接近程序中的对象模型。
缺点:
1. 存储空间有限
512MB 很容易用完。
2. 不适合作为通用业务数据库
例如:
订单系统:
用户
订单
商品
库存
支付
关系复杂时,PostgreSQL / MySQL 通常更合适。
三、Cloudflare D1 —— 边缘数据库方案 ⭐⭐⭐
数据库类型:SQLite
推荐指数:★★★
使用状态:⚠️ 测试过
Cloudflare D1 是 Cloudflare 推出的边缘数据库。
它最大的特点:
数据库运行在 Cloudflare 网络中。
架构:
用户
|
Cloudflare Worker
|
D1 SQLite
优势
1. 和 Cloudflare 生态结合非常好
如果你的项目已经使用:
- Workers;
- Pages;
- R2;
那么 D1 使用起来非常自然。
2. 延迟低
数据靠近用户。
适合:
- 全球访问的小工具;
- 边缘计算应用。
不足
1. SQLite限制
它不是传统:
- MySQL;
- PostgreSQL。
复杂业务能力有限。
2. 不适合大型项目
例如:
- 电商;
- ERP;
- 高并发业务;
不建议使用。
适合场景
推荐:
✅ 访问统计
✅ 配置中心
✅ 小型工具
✅ 简单 CMS
不推荐:
❌ 核心业务数据库
四、Upstash Redis —— 免费缓存和计数方案 ⭐⭐⭐⭐
数据库类型:Redis
推荐指数:★★★★
使用状态:⚠️ 计划使用
Redis 和前面的数据库不同。
它更适合作为:
- 缓存;
- 计数器;
- 限流系统。
免费额度
免费套餐:
- 每天一定数量命令额度;
- 有存储限制。
具体额度可能随时间调整,需要以官方最新规则为准。
接口限流
例如:
限制:
同一个IP
一分钟最多发送5次请求
Redis:
rate_limit:ip_xxx
记录访问次数。
临时缓存
例如:
邮件列表:
数据库
↓
Redis缓存
↓
用户访问
减少数据库压力。
五、PlanetScale —— 曾经优秀,现在不再推荐 ⚠️
数据库类型:MySQL
推荐指数:★
当前状态:❌ 免费套餐取消
PlanetScale 曾经非常火:
- Serverless MySQL;
- Git 风格数据库分支;
- 自动扩容。
很多文章仍然推荐它。
但是:
2024 年 PlanetScale 取消免费套餐。
目前:
新用户需要付费。
所以:
如果你的目标是:
免费数据库
现在不建议选择 PlanetScale。
数据库方案总结
| 服务 | 类型 | 免费空间 | 推荐场景 | 推荐程度 |
|---|---|---|---|---|
| Supabase | PostgreSQL | 500MB | 全栈应用 | ⭐⭐⭐⭐⭐ |
| MongoDB Atlas | NoSQL | 512MB | JSON数据 | ⭐⭐⭐⭐ |
| Cloudflare D1 | SQLite | 免费额度 | 边缘应用 | ⭐⭐⭐ |
| Upstash | Redis | 有限额度 | 缓存/统计 | ⭐⭐⭐⭐ |
| PlanetScale | MySQL | 已取消 | 不推荐新项目 | ⭐ |
常见低成本架构设计
前面的服务介绍解决的是:
- 文件存储;
- 数据库存储;
- 缓存需求。
实际项目中,推荐按照职责拆分:
用户请求
↓
Cloudflare CDN
↓
应用服务器
↓
业务数据库
文件资源
↓
对象存储
一个稳定的低成本架构通常遵循:
计算、数据、文件、网络入口分离。
推荐架构方案
方案A:个人博客 / 静态网站
适合:
- 技术博客;
- 文档站;
- 个人主页;
- 开源项目展示。
架构:
用户
↓
Cloudflare CDN
↓
Cloudflare Pages
图片资源
↓
Cloudflare R2
组件:
| 功能 | 服务 |
|---|---|
| 网站托管 | Cloudflare Pages |
| CDN | Cloudflare |
| 图片存储 | Cloudflare R2 |
| 数据库 | 不需要 |
优势:
- 零服务器维护;
- 全球 CDN 加速;
- 成本极低。
适合大多数个人博客。
方案B:小型 Web 应用
适合:
- Todo 应用;
- 工具网站;
- 小型 SaaS;
- 社区项目。
推荐架构:
用户
↓
Cloudflare CDN
↓
VPS / Serverless
↓
数据库
↓
Supabase PostgreSQL
文件
↓
Cloudflare R2
缓存
↓
Upstash Redis
各组件职责:
VPS
负责:
- 后端服务;
- API;
- 定时任务。
Supabase
负责:
- 用户数据;
- 业务数据;
- 数据查询。
R2
负责:
- 图片;
- 附件;
- 文件。
Redis
负责:
- 缓存;
- 访问计数;
- 限流。
这种架构扩展性较好,同时成本可控。
方案C:自托管 + 云服务混合方案
适合:
- 已经有 VPS;
- 希望降低维护成本。
架构:
VPS
运行:
- Web服务
- API
- 后台任务
对象存储:
- R2
- B2
数据库:
- PostgreSQL
- MySQL
备份:
- Oracle Object Storage
- 其他对象存储
相比全部部署在 VPS:
优势:
- 降低磁盘压力;
- 数据更加安全;
- 更容易扩容。
免费服务避坑经验
免费资源最大的风险:
不是额度不足。
而是:
服务策略变化。
坑1:免费套餐取消
典型案例:
PlanetScale
PlanetScale 曾经提供免费 MySQL 服务,被大量开发者使用。
后来取消免费套餐。
经验:
不要把核心业务完全绑定在单一免费平台。
建议:
- 定期导出数据;
- 保留迁移方案;
- 使用通用技术标准。
例如:
数据库:
优先选择:
- PostgreSQL;
- MySQL。
对象存储:
优先选择:
- S3 兼容协议。
坑2:只关注存储价格,忽略流量成本
很多人选择对象存储时:
只看:
每 GB 存储多少钱
但实际产生费用最多的可能是:
数据下载流量
例如图片网站:
图片数量增加
↓
访问量增加
↓
出口流量增加
↓
费用上涨
所以选择对象存储时,需要关注:
- 出站流量价格;
- CDN 配合方式;
- 请求次数费用。
这也是 Cloudflare R2 在个人网站场景中受欢迎的重要原因。
坑3:数据库免费额度并不等于无限使用
免费数据库通常限制:
- 存储空间;
- CPU;
- 内存;
- 最大连接数;
- 请求数量。
项目增长后:
可能出现:
访问增加
↓
数据库压力增加
↓
响应变慢
↓
服务异常
优化方式:
使用连接池
例如:
Java:
HikariCP
Python:
SQLAlchemy Pool
增加缓存
架构:
用户
↓
Redis
↓
数据库
减少数据库压力。
坑4:没有备份策略
无论使用:
- VPS;
- 免费数据库;
- 云服务;
都不要认为:
“云服务商会帮我保证数据安全。”
建议:
至少:
生产数据
↓
自动备份
↓
异地保存
例如:
数据库
↓
定期导出
↓
对象存储
同时:
定期测试恢复流程。
因为:
没有验证过的备份,等于没有备份。
推荐组合总结
方案1:零成本个人站点
Cloudflare Pages
+
Cloudflare R2
+
Cloudflare CDN
成本:
约 $0/月
适合:
- 博客;
- 文档;
- 展示站。
方案2:低成本 Web 应用
廉价 VPS
+
Supabase
+
Cloudflare R2
+
Upstash Redis
+
Cloudflare CDN
成本:
约 $3~5/月
适合:
- 小型 SaaS;
- 工具网站;
- 社区应用。
方案3:自托管增强方案
VPS
运行核心服务
对象存储
保存文件
云数据库
保存业务数据
备份存储
保存历史数据
特点:
- 成本低;
- 易维护;
- 容易扩展。
给新手的实践路线
不要一开始就搭建复杂架构。
推荐顺序:
第一步:学习对象存储
从:
Cloudflare R2
开始。
掌握:
- Bucket;
- CDN;
- 自定义域名;
- 缓存策略。
第二步:学习云数据库
推荐:
Supabase。
掌握:
- PostgreSQL;
- API;
- 用户认证。
第三步:学习组合架构
最终形成:
Cloudflare
负责入口
VPS
负责计算
R2
负责文件
数据库
负责业务数据
Redis
负责缓存
这也是目前很多轻量级 SaaS 常见的技术架构。
2026 更新说明
本文内容基于:
- 实际测试;
- 官方公开信息;
- 长期关注。
当前推荐状态:
| 服务 | 状态 |
|---|---|
| Cloudflare R2 | ✅ 推荐 |
| Oracle Cloud Object Storage | ✅ 推荐用于备份 |
| Supabase | ✅ 推荐 |
| MongoDB Atlas | ✅ 小型项目可用 |
| Upstash | ✅ 推荐作为缓存 |
| PlanetScale | ❌ 不推荐新项目 |
总结
对于个人开发者和小型项目:
没有必要一开始购买昂贵服务器。
更合理的方式:
计算
↓
VPS
文件
↓
对象存储
数据
↓
数据库
入口
↓
CDN
通过合理拆分:
- 降低成本;
- 提高可靠性;
- 保留未来扩展空间。
免费资源不是目标。
真正重要的是:
用最低成本搭建一个稳定、可维护、可迁移的系统。
《低成本自托管之路》系列
2026年免费 VPS 资源整理
免费域名、DNS 和 CDN 完全指南
免费对象存储和数据库完全指南(本文)
后续:
- Docker 自托管服务推荐;
- Cloudflare 全家桶实践;
- 低成本服务器架构设计。