Cloudflare R2 Storage Project 是一个基于 Spring Boot 的云存储服务,集成 Cloudflare R2(兼容 S3 协议),支持对象存储的常用操作。项目同时集成了 OpenAPI (Swagger),便于接口调试与开发。
- 技术栈:Java 25 | Spring Boot 3.5.x | Cloudflare R2 (S3 SDK) | Springdoc OpenAPI | Lombok
- 用途:提供高性能、低成本的对象存储服务,支持文件上传、下载与管理。
- JDK 25
- Gradle
- Cloudflare R2 账号与存储桶
# 克隆项目
git clone https://github.com/sanwenyukaochi/Cloudflare-R2.git
cd Cloudflare-R2
# 构建项目
./gradlew build
# 启动项目
./gradlew bootRun💡 Tip:你也可以使用 Gradle Wrapper
./gradlew来保证与项目一致的 Gradle 版本。
在 src/main/resources/application.properties 中配置:
cloudflare.account-id=<你的AccountId>
cloudflare.r2.accessKey=<你的AccessKey>
cloudflare.r2.secretKey=<你的SecretKey>- 存储桶管理:创建、删除、列举
- 文件操作:上传、下载、删除
- 文件元数据查询
- OpenAPI (Swagger) 在线接口文档
访问 http://localhost:8080/swagger-ui.html 查看所有接口。
Cloudflare-R2/
├── src/main/java/com/cloudflare/storage/
│ ├── S3Application.java # 启动类
│ ├── config/ # 配置类
│ ├── controller/ # 控制器层,API接口
│ ├── requests/ # 请求参数封装
│ ├── service/ # 业务逻辑层
├── src/main/resources/
│ └── application.properties # 配置文件
├── build.gradle # 构建脚本
- Fork 后请根据自身环境修改 R2 配置
- 可结合 CI/CD 自动化部署
- 对大文件上传可使用分片上传策略
如需定制化开发或技术支持,请联系作者:
- GitHub: sanwenyukaochi
- 邮箱:
[email protected]