# oss-spring-boot-starter **Repository Path**: lichunlin-forest/oss-spring-boot-starter ## Basic Information - **Project Name**: oss-spring-boot-starter - **Description**: 整合各种oss文件上传 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-28 - **Last Updated**: 2025-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OSS Spring Boot Starter 多平台对象存储集成组件 ## 简介 `oss-spring-boot-starter` 是一个整合了主流云服务商对象存储服务(OSS)的Spring Boot Starter,支持阿里云OSS、华为云OBS、腾讯云COS、移动云EOS等。提供统一的上传、下载、删除和获取文件地址等操作方法,简化在不同云服务商之间切换的复杂度。 ## 功能特性 * 统一API操作多种云存储服务 * 支持文件上传、下载、删除等基本操作 * 支持批量删除操作 * 支持获取文件访问地址 * 支持文件访问权限控制 * 支持多种云服务商: * 阿里云OSS (AliOssClient) * 华为云OBS (HuaweiOssClient) * 腾讯云COS (TencentOssClient) * 移动云EOS (MobileOssClient) * 自动配置,开箱即用 * 支持Spring Boot 2.x/3.x ## 快速开始 #### 1. 添加依赖 ``` maven com.forest oss-spring-boot-starter 1.0.0-SNAPSHOT ``` #### 2. 配置属性 在`application.yml`中配置对应云服务的参数: ```yml config: oss: ali: type: aliyun enable: true endpoint: oss-cn-beijing.aliyuncs.com app-key-id: your-access-key app-secret: your-secret-key bucket: your-bucket-name project: your-project-name bucket-domain: your-custom-domain.com ``` #### 3. 使用示例 ``` @RestController @RequestMapping("/file") public class FileController { @Autowired private IOssClient ossClient; @PostMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) { try { String fileUrl = ossClient.upload(file.getOriginalFilename(), file.getInputStream()); return "文件上传成功,访问地址: " + fileUrl; } catch (IOException e) { return "文件上传失败"; } } @GetMapping("/download") public void download(String key, HttpServletResponse response) { try { InputStream inputStream = ossClient.download(key); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=" + key); IOUtils.copy(inputStream, response.getOutputStream()); } catch (IOException e) { response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); } } @DeleteMapping("/delete") public String delete(String key) { ossClient.delete(key); return "删除成功"; } @GetMapping("/url") public String getUrl(String key) { return ossClient.getFile(key); } } ``` ## 详细配置 #### 阿里云OSS配置 ```yml config: oss: ali: type: aliyun enable: true endpoint: oss-cn-hangzhou.aliyuncs.com app-key-id: your-access-key-id app-secret: your-access-key-secret bucket: your-bucket-name project: your-project-name bucket-domain: your-custom-domain.com ``` #### 华为云OBS配置 ```yml config: oss: huawei: type: huawei enable: true endpoint: obs.cn-east-3.myhuaweicloud.com app-key-id: your-access-key-id app-secret: your-access-key-secret bucket: your-bucket-name project: your-project-name bucket-domain: your-custom-domain.com ``` #### 腾讯云COS配置 ```yml config: oss: tencent: type: tencent enable: true endpoint: cos.ap-shanghai.myqcloud.com app-key-id: your-secret-id app-secret: your-secret-key bucket: your-bucket-name project: your-project-name bucket-domain: your-custom-domain.com ``` #### 移动云EOS配置 ```yml config: oss: mobile: type: mobilecloud enable: true endpoint: eos-cn-east-1.cmecloud.cn app-key-id: your-access-key app-secret: your-secret-key bucket: your-bucket-name project: your-project-name bucket-domain: your-custom-domain.com ``` #### 多云服务商同时使用 ```yml config: oss: ali: type: aliyun enable: true # 阿里云配置... huawei: type: huawei enable: true # 华为云配置... ``` ```java @Autowired @Qualifier("aliOssClient") private IOssClient aliOssClient; @Autowired @Qualifier("huaweiOssClient") private IOssClient huaweiOssClient; ``` ## 注意事项 1. 请确保配置的app-key-id和app-secret有足够的权限 2. 文件上传大小受Spring Boot配置限制,可在`application.yml`中调整: ```yml spring: servlet: multipart: max-file-size: 10MB max-request-size: 10MB ``` 3. 批量删除操作需谨慎使用 4. 生产环境建议使用自定义域名并开启HTTPS ## 版本更新 #### v1.0.0 * 初始版本,支持阿里云、华为云、腾讯云、移动云基本操作 * 支持文件上传、下载、删除、获取URL等功能 * 支持批量删除操作 * 支持访问权限控制 ## 许可证 Apache License 2.0