# oss-spring-boot **Repository Path**: felord/oss-spring-boot ## Basic Information - **Project Name**: oss-spring-boot - **Description**: oss - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 5 - **Created**: 2020-08-25 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot Starter with aliyun OSS and Minio OSS 整合了阿里云和Minio的OSS SDK,为Spring Boot 项目提供可插拔的OSS对象存储服务功能。 个人博客:https://felord.cn # API 抽象接口`cn.felord.oss.Storage`作为操作OSS的核心接口,目前提供了四种方法: ```java package cn.felord.oss; import java.io.InputStream; /** * The interface Storage. * * @author felord.cn * @since 2020 /8/24 19:54 */ public interface Storage { /** * 存放对象 * * @param bucketName bucket 名称 * @param objectName 自定义对象名称 * @param inputStream 对象的输入流 * @param contentType 参考http 的 MimeType 值 * @throws Exception the exception */ void putObject(String bucketName, String objectName, InputStream inputStream, String contentType) throws Exception; /** * 获取对象 * * @param bucketName the bucket name * @param objectName the object name * @return the object */ InputStream getObject(String bucketName, String objectName) throws Exception; /** * 获取对象的URL * * @param bucketName the bucket name * @param objectName the object name * @return the object url */ String getObjectUrl(String bucketName, String objectName) throws Exception; /** * 删除对象 * * @param bucketName the bucket name * @param objectName the object name */ void removeObject(String bucketName, String objectName) throws Exception; } ``` ## 依赖安装 `git pull`之后,通过`mvn install`命令安装到本地Maven仓库,当然你也可以上传到你的Maven私仓。然后引入Maven坐标: ```xml cn.felord oss-spring-boot-starter 1.0.0.RELEASE ``` ## 配置生效条件 这里使用了Spring Boot的条件生效功能以达到灵活配置的目的,所以要认真阅读下面的说明。 ### 只使用Minio的配置 `application.yaml`的配置 ```yaml oss: minio: # 启用 active: true access-key: minio_access_key secret-key: felord_cn_sec_key # minio 地址 endpoint: http://localhost:9000 ``` 然后使用Spring Bean,引入的方式: ```java @Autowired @Qualifier("minioStorage") Storage storage; ``` 或者 ```java @Autowired Storage minioStorage; ``` ### 只使用阿里云OSS的配置 需要额外引入阿里云OSS SDK: ```xml com.aliyun.oss aliyun-sdk-oss 2.5.0 com.aliyun aliyun-java-sdk-core 4.3.8 ``` `application.yaml`的配置: ```yaml oss: aliyun: active: true access-key-id: LTAI4GH4EQXtKEbJDrADvWNH access-key-secret: XjDpNn5JqHAHPDXGL6xIebyUkyFAZ7 endpoint: oss-cn-beijing.aliyuncs.com ``` 然后使用Spring Bean,引入的方式: ```java @Autowired @Qualifier("aliyunStorage") Storage storage; ``` 或者 ```java @Autowired Storage aliyunStorage; ``` ### 同时使用 参考上面的两个配置,请注意这时Spring IoC存在两个`Storage`,需要显式指定使用哪个。 ### 开关 你可以通过`oss..active`配置项来显式的进行开关对应的OSS. ## 其它 有问题可通过微信MSW_623联系或者提交ISSUE。