Skip to content

idinging/cloudflare-r2-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloudflare R2 文件存储服务

项目简介

这是一个基于Spring Boot的文件存储服务,使用Cloudflare R2作为存储后端。该项目提供了完整的文件上传、下载、管理和访问功能,支持通过REST API进行文件操作。

CSDN博客:https://blog.csdn.net/weixin_61960336/article/details/148208649

主要功能

  • 文件上传:支持将文件上传到Cloudflare R2存储
  • 文件列表:支持获取所有文件列表和按前缀筛选文件
  • 文件访问:提供文件URL生成和访问功能
  • 文件管理:支持文件删除和详细信息查询
  • 文件组织:自动按日期组织文件存储结构

技术栈

  • Spring Boot:后端框架
  • Cloudflare R2:对象存储服务
  • AWS SDK for Java:与R2存储交互
  • Swagger:API文档生成
  • Lombok:简化代码
  • SLF4J:日志管理

项目结构

src/main/java/com/iding/cloudflare/r2/
├── controller/
│   └── r3Controller.java        # REST API 控制器
├── service/
│   ├── FileUploadService.java   # 服务接口
│   └── impl/
│       └── FileUploadServiceImpl.java  # 服务实现
├── entity/
│   └── FileInfo.java           # 文件信息实体类
├── config/
│   └── R2FileUtils.java        # R2配置工具类
└── utils/
    └── Result.java             # 统一响应结果类

API接口说明

1. 文件上传

  • 接口:POST /api/file/r2/upload
  • 功能:上传文件到R2存储
  • 参数:file(文件)
  • 返回:文件访问URL

2. 获取文件列表

  • 接口:GET /api/file/r2/list
  • 功能:获取所有文件列表
  • 返回:文件键列表

3. 按前缀获取文件列表

  • 接口:GET /api/file/r2/list/prefix
  • 功能:获取指定前缀的文件列表
  • 参数:prefix(文件前缀)
  • 返回:匹配的文件键列表

4. 获取文件URL

  • 接口:GET /api/file/r2/url
  • 功能:获取文件的访问URL
  • 参数:objectKey(文件键)
  • 返回:文件访问URL

5. 删除文件

  • 接口:DELETE /api/file/r2/delete
  • 功能:删除指定文件
  • 参数:objectKey(文件键)
  • 返回:删除操作结果

6. 获取文件信息

  • 接口:GET /api/file/r2/info
  • 功能:获取文件的详细信息
  • 参数:objectKey(文件键)
  • 返回:文件详细信息(大小、修改时间等)

配置说明

项目需要配置以下参数:

# Cloudflare R2配置
r2.endpoint=your-r2-endpoint
r2.access-key=your-access-key
r2.secret-key=your-secret-key
r2.region=your-region
r2.bucket-name=your-bucket-name
r2.cdn-domain=your-cdn-domain

使用说明

  1. 克隆项目到本地
  2. 配置R2相关参数
  3. 运行Spring Boot应用
  4. 访问Swagger文档:http://localhost:8080/swagger-ui.html

注意事项

  1. 确保已正确配置Cloudflare R2的访问凭证
  2. 文件上传大小限制需要在配置文件中设置
  3. 建议在生产环境中配置适当的访问控制和认证机制
  4. 定期检查存储桶的访问权限设置

开发环境要求

  • JDK 17+
  • Maven 3.6+
  • Spring Boot 3.x

贡献指南

  1. Fork 项目
  2. 创建特性分支
  3. 提交更改
  4. 推送到分支
  5. 创建Pull Request

许可证

MIT License

联系方式

赞赏码

如果本项目对你有帮助,欢迎通过以下方式请我喝杯咖啡:

微信赞赏码 支付宝赞赏码
微信赞赏码 支付宝赞赏码

About

使用Java配置Cloudflare R2 文件服务 实现上传下载 提供 REST Api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages