# minio-spring-boot-starter **Repository Path**: li9699/minio-spring-boot-starter ## Basic Information - **Project Name**: minio-spring-boot-starter - **Description**: 集成 MinIO 存储服务的轻量级组件,适用于 Spring Boot 项目 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-07-08 - **Last Updated**: 2025-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: minio ## README # MinIO 集成组件 这是一个用于集成 MinIO 存储服务的轻量级组件,适用于 Spring Boot 项目。它提供了自动配置和简便的 API 操作模板,帮助开发者快速实现文件上传、下载、删除等常见操作。 ## 项目结构 - **`MinioAutoConfiguration.java`** 自动配置类,根据配置启用 MinIO 客户端并注册模板 Bean。 - **`MinioConfigurationProperties.java`** 配置属性类,用于映射 `application.properties` 或 `application.yml` 中的 MinIO 配置。 - **`MinioAccessor.java`** 提供对 MinIO 客户端的基础访问能力,实现了初始化逻辑。 - **`MinioTemplate.java`** 核心操作模板类,实现了 `MinioOperations` 接口,提供文件上传、下载、删除、预签名 URL 生成等功能。 - **`MinioOperations.java`** 操作接口,定义了 MinIO 存储操作的通用方法。 ## 功能特性 - 自动配置 MinIO 客户端 - 支持上传、下载和删除对象 - 支持生成预签名的上传 URL - 支持列出指定前缀的对象 - 支持检查对象是否存在 ## 安装与配置 ### 本地仓库安装 在 `pom.xml` 所在路径打开`cmd`中执行以下命令: ```java mvn clean install ``` ### Maven 依赖 在你自己的 `pom.xml` 中添加以下依赖: ```xml com.minio minio-spring-boot-starter 1.0 ``` ### 配置 MinIO 属性 在 `application.yml` 或 `application.properties` 中配置 MinIO: ```yaml minio: enable: true # 可选择是否启用自动配置 endpoint: http://localhost:9000 # 端点 accessKey: YOUR_ACCESS_KEY # 账号 secretKey: YOUR_SECRET_KEY # 密码 bucket: your-bucket-name # 对象桶 ``` ## 使用示例 ### 上传文件 #### 尚庭公寓文件上传为例 仅需粘贴以下代码即可实现 ```java @Service public class FileServiceImpl implements FileService { @Resource private MinioTemplate minioTemplate; @Override public String upload(MultipartFile file) throws Exception { String date = new SimpleDateFormat("yyyyMMdd").format(new Date()); String objectName = date +"/"+ file.getOriginalFilename(); minioTemplate.uploadObject(objectName,file.getInputStream(),file.getSize(),file.getContentType()); return minioTemplate.getObjectUrl(objectName); } } ``` ### 下载文件 ```java public InputStream downloadFile(String objectName) throws Exception { return minioTemplate.downloadObject(objectName); } ``` ### 删除文件 ```java public void deleteFile(String objectName) throws Exception { minioTemplate.deleteObject(objectName); } ``` ### 获取对象 URL ```java public String getObjectUrl(String objectName) throws Exception { return minioTemplate.getObjectUrl(objectName); } ``` ### 生成预签名上传 URL ```java public String getPresignedPutUrl(String objectName, int expiryMinutes) throws Exception { return minioTemplate.getPresignedPutUrl(objectName, expiryMinutes); } ``` ## 贡献指南 欢迎贡献代码和改进!请遵循以下步骤: 1. Fork 仓库 2. 创建新分支 (`git checkout -b feature/your-feature`) 3. 提交更改 (`git commit -am 'Add some feature'`) 4. 推送分支 (`git push origin feature/your-feature`) 5. 提交 Pull Request ## 许可证 本项目基于 MIT 许可证。更多信息请查看项目根目录下的 `LICENSE` 文件。 --- 以上 README.md 文件是基于项目结构和类定义的功能描述,实际代码内容可能略有不同。如果需要更详细的 README,建议解决提取错误后重新生成。