# minio-spring-boot-starter **Repository Path**: del-space/minio-spring-boot-starter ## Basic Information - **Project Name**: minio-spring-boot-starter - **Description**: MinIO Spring Boot Starter - 企业级对象存储解决方案 ✨ 特性: - 开箱即用的自动配置 - 完整的文件操作 API - SLF4J 日志集成 - 配置验证支持 - 方法重载设计 - 自定义异常处理 🔧 支持功能:文件上传/下载/删除、预签名URL、文件列表、元数据查询等 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-13 - **Last Updated**: 2025-11-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MinIO Spring Boot Starter 这是一个为 Spring Boot 项目提供的 MinIO 启动器,用于简化与 [MinIO](https://min.io) 对象存储服务的集成。该启动器提供自动配置、预定义的客户端和服务类,使您可以轻松地上传、下载和管理对象。 ## 特性 - 自动配置 MinIO 客户端(`MinioClient`)和自定义属性(`MinioProperties`)。 - 提供便捷的服务类 `MinioService`,封装常用操作,如上传、下载、删除、检查对象是否存在、获取预签名 URL 等。 - 支持自定义 MinIO 服务器地址、访问密钥、存储桶名称等配置。 - 提供运行时异常封装 `MinioOperationException`,便于错误处理。 ## 使用方法 ### 1. 添加依赖 请确保在您的 `pom.xml` 中包含此启动器作为依赖项。 ```xml org.del minio-spring-boot-starter 版本号 ``` ### 2. 配置 MinIO 属性 在 `application.yml` 或 `application.properties` 中配置 MinIO 的相关属性: ```yaml spring: del: minio: enabled: true endpoint: http://localhost:9000 access-key: YOUR_ACCESS_KEY secret-key: YOUR_SECRET_KEY bucket-name: your-bucket auto-create-bucket: true connect-timeout: 10000 write-timeout: 10000 read-timeout: 10000 ``` ### 3. 注入并使用 `MinioService` 您可以直接将 `MinioService` 注入到您的服务类中并使用其方法: ```java @Service public class YourService { private final MinioService minioService; public YourService(MinioService minioService) { this.minioService = minioService; } public void uploadFile(String objectName, InputStream inputStream) { minioService.upload(objectName, inputStream); } } ``` ## 支持的操作 - **上传文件**:`upload(String objectName, InputStream inputStream)` - **下载文件**:`download(String objectName)` - **删除文件**:`delete(String objectName)` - **检查文件是否存在**:`exists(String objectName)` - **获取预签名 URL**:`getPresignedUrl(String objectName)` - **列出所有对象**:`listObjects()` - **获取对象元数据**:`getObjectMetadata(String objectName)` > 所有操作均支持指定 `bucketName` 的重载方法。 ## 异常处理 所有操作都可能抛出 `MinioOperationException`,建议在使用过程中进行捕获和处理。 ```java try { minioService.upload("file.txt", inputStream); } catch (MinioOperationException e) { // 处理异常 } ``` ## 自动配置说明 此启动器会根据配置自动创建以下 Bean: - `MinioClient`:MinIO 客户端实例。 - `MinioService`:封装了常用操作的服务类。 如果这些 Bean 已经存在,则不会重复创建(通过 `@ConditionalOnMissingBean`)。 ## 自定义配置 您可以通过 `MinioProperties` 类中的所有字段进行配置,包括: - `endpoint`:MinIO 服务地址。 - `accessKey` 和 `secretKey`:访问凭证。 - `bucketName`:默认存储桶名称。 - `autoCreateBucket`:是否自动创建存储桶。 - 超时配置:`connectTimeout`、`writeTimeout`、`readTimeout`。 ## 贡献与问题反馈 欢迎提交 PR 或 Issue 来帮助改进这个项目。请访问 [Gitee 项目页面](https://gitee.com/del-space/minio-spring-boot-starter) 获取更多信息。 ## 许可证 本项目使用 [MIT 许可证](https://opensource.org/licenses/MIT) 开源。详情请参阅项目中的 `LICENSE` 文件。