--- title: 后端概览 createTime: 2025/11/09 00:26:55 permalink: /storage/overview --- # 存储后端概览 Cloud Index 支持多个存储后端,可根据需求选择合适的服务。 ## 后端对比 | 特性 | Cloudflare R2 | Amazon S3 | GitHub Repository | |-----|------------|----------|------------------| | **定价模式** | 流量免费 + 请求费 | 流量费 + 请求费 + 存储费 | 免费(通过 GitHub) | | **价格水平** | 💚 最低 | 💛 中等 | 💚 免费 | | **全球覆盖** | ✅ 全球 CDN | ✅ 全球 CDN | ✅ CDN 加速可选 | | **易用性** | ✅ 简单 | ⚠️ 中等 | ✅ 简单 | | **可扩展性** | ✅ 无限制 | ✅ 无限制 | ⚠️ 仓库大小限制(1GB) | | **性能** | 🚀 优秀 | 🚀 优秀 | 🚀 优秀(配合 CDN) | | **版本控制** | ❌ 无 | ❌ 无 | ✅ 自动 Git 历史 | | **适用场景** | 个人/小团队 | 企业 | 开源/文档 | ## 快速选择指南 ### 选择 Cloudflare R2 **如果你需要:** - ✅ 最低成本 - ✅ 快速启动 - ✅ 全球加速 - ✅ 简单配置 **推荐用途:** - 个人云盘 - 小团队文件存储 - 媒体文件托管 - 备份存储 **成本估算(月均):** - 1GB 存储 + 1 万请求 = $0.001 左右(极低) ### 选择 Amazon S3 **如果你需要:** - ✅ 完整功能 - ✅ 企业级服务 - ✅ 高可靠性 - ✅ 专业支持 **推荐用途:** - 企业级应用 - 生产环境存储 - 大规模数据存储 - 需要合规性的应用 **成本估算(月均):** - 1GB 存储 + 1 万请求 = $0.023 左右(按需计费) ### 选择 GitHub Repository **如果你需要:** - ✅ 完全免费 - ✅ 版本控制 - ✅ 简单易用 - ✅ 便于备份 **推荐用途:** - 文档存储 - 配置文件 - 小文件共享 - 开源项目资源 - 博客图片 **成本估算:** - 完全免费 ✅ ## 功能特性对比 ### 文件操作 | 操作 | R2 | S3 | GitHub | |-----|-----|-----|---------| | 上传 | ✅ | ✅ | ✅ | | 下载 | ✅ | ✅ | ✅ | | 删除 | ✅ | ✅ | ✅ | | 列表 | ✅ | ✅ | ✅ | | 重命名 | ✅ | ✅ | ✅ | | 复制 | ✅ | ✅ | ⚠️ (需支持) | | 移动 | ✅ | ✅ | ⚠️ (需支持) | ### 高级功能 | 功能 | R2 | S3 | GitHub | |-----|-----|-----|---------| | 公开访问 URL | ✅ | ✅ | ✅ | | 预签名 URL | ✅ | ✅ | ✅ | | CDN 集成 | ✅ | ✅ | ✅ | | 版本控制 | ❌ | ⚠️ (付费) | ✅ | | 生命周期策略 | ✅ | ✅ | ❌ | | 访问控制 | ✅ | ✅ | ✅ (Git 权限) | ## 性能基准 基于 1 千次请求、1GB 文件的测试: | 操作 | R2 | S3 | GitHub | |-----|-----|-----|---------| | **列表** | ~50ms | ~80ms | ~150ms | | **上传** | ~300ms | ~350ms | ~500ms | | **下载** | ~100ms | ~120ms | ~200ms | | **删除** | ~100ms | ~120ms | ~200ms | *注:实际性能取决于网络距离和文件大小* ## 成本对比(月均) 假设场景: - 存储:10GB - 月请求:100,000 - 流量:500GB | 服务 | 存储费 | 请求费 | 流量费 | 总计 | |-----|-------|--------|--------|------| | **R2** | 免费 | $0.36 | 免费 | **$0.36** 💚 | | **S3** | $2.30 | $0.50 | $4.57 | **$7.37** | | **GitHub** | 免费 | 免费 | 免费 | **免费** 🎉 | ## 迁移指南 ### R2 → S3 ```bash # 使用 aws cli 迁移 aws s3 sync s3://r2-bucket/ s3://s3-bucket/ \ --source-profile r2 \ --profile s3 ``` ### S3 → R2 ```bash # 使用 aws cli 迁移 aws s3 sync s3://s3-bucket/ s3://r2-bucket/ \ --source-profile s3 \ --profile r2 \ --endpoint-url https://account.r2.cloudflarestorage.com ``` ### GitHub → R2 ```bash # 1. 从 GitHub 克隆仓库 git clone https://github.com/user/repo.git cd repo # 2. 使用工具上传到 R2 # 使用 rclone、aws cli 等工具 ``` ## 如何选择 ### 决策树 ``` 是否需要完全免费? ├─ 是 → GitHub Repository ✅ └─ 否 └─ 是否需要企业级功能? ├─ 是 → Amazon S3 ✅ └─ 否 → Cloudflare R2 ✅(最佳平衡) ``` ### 快速决策表 | 场景 | 推荐 | 理由 | |-----|------|------| | 个人博客 | GitHub | 免费且简单 | | 小团队文件 | R2 | 成本低,性能好 | | 企业应用 | S3 | 功能完整,支持好 | | 大规模存储 | R2 | 流量免费,成本最低 | | 版本控制重要 | GitHub | 自动 Git 历史 | ## 后续配置 选择好存储后端后,按照相应指南进行配置: - **[Cloudflare R2 配置](./r2.md)** - 详细配置步骤 - **[Amazon S3 配置](./s3.md)** - AWS S3 设置 - **[GitHub 存储配置](./github.md)** - GitHub 仓库配置 ## 常见问题 ### Q: 可以中途更换存储后端吗? **A:** 可以!只需修改 `.env` 文件中的 `STORAGE_TYPE` 环境变量。但需要: - 手动迁移现有文件 - 重新配置凭证 ### Q: 多个后端能同时使用吗? **A:** 目前不支持,但可以: - 部署多个应用实例 - 每个实例使用不同后端 - 通过负载均衡器分流 ### Q: 有免费额度吗? **A:** - **R2**: 每月前 1000 万请求免费 ✅ - **S3**: 新用户 12 个月免费套餐 - **GitHub**: 完全免费(通过 GitHub)✅ ### Q: 如何监控使用成本? **A:** - **R2**: Cloudflare 控制面板实时显示 - **S3**: AWS 成本管理器 - **GitHub**: 不产生成本 ## 获取帮助 - 📖 [R2 详细配置](./r2.md) - 📖 [S3 详细配置](./s3.md) - 📖 [GitHub 详细配置](./github.md) - 🐛 [提交 Issue](https://github.com/RhenCloud/Cloud-Index/issues)