## 简介 * MinIO 是一个开源的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。 * MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。 ## ⚠️版本使用注意: * 自从2021年minio开源协议从Apache2.0变更为AGPLv3后,新协议就不适合免费商用了 * AGPLv3规定,只要系统部署后接入minio服务,具有文件存储或读取行为,不论是否改造源码,不论发布在何处,都需要将整个产品源码开源 * 所以如果使用minio开源版,请选择Apache2.0的最后一个版本:`minio-RELEASE.2021-04-22T15-44-28Z` * 具体官方说明请见下图 ![](https://img.kancloud.cn/ed/3b/ed3bd18bd86d45db9689229df486db69_2520x1816.png) ## 如何启动 * 参考地址如下:[https://docs.min.io/cn/](https://docs.min.io/cn/) * 推荐使用前将官方文档简单过一遍,有个大概印象 ## 访问地址 * 访问 [http://localhost:9000](http://localhost:9000/) 登陆 ![](https://box.kancloud.cn/8d8126cfbcc60e72887087d073ca741e_2330x1364.png) * 根据官方文档获取access-key和secret-key登陆,出现如下界面则说明部署成功 ![](https://box.kancloud.cn/3669a2058932c9c87cedfbcfcf03d784_3342x1796.png) ## 如何使用 1. 需要文件上传的服务引入依赖 ~~~ <dependency> <groupId>org.springblade</groupId> <artifactId>blade-core-oss</artifactId> <version>${blade.tool.version}</version> </dependency> ~~~ 2. 在配置文件或者nacos进行配置(具体access-key和secret-key获取可以参考官方文档) ~~~ #oss配置 oss: enabled: true name: minio tenant-mode: false endpoint: http://localhost:9000 access-key: N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h secret-key: AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS bucket-name: blade ~~~ 3. 创建一个Controller,注入MinioTemplate ![](https://img.kancloud.cn/d3/dc/d3dce70b9125eb2d9241fa1e978905e4_1922x552.png) 4. 使用postman进行调用测试,调用成功 ![](https://img.kancloud.cn/19/70/19707b499d2296e6827e52079448d138_1614x1166.png) 5. 打开minio控制台也发现了我们上传的文件 ![](https://img.kancloud.cn/90/81/90816a85766a8cad1f3e90c519626314_1560x852.png) 6. BladeX对minio进行了定制,可以使用MinioTemplate非常方便地进行minio文件操作 ## MinioTemplate 1. 如何使用,大家可以前往 [org.springblade.core.oss.MinioTemplate](https://gitee.com/smallc/blade-tool/blob/master/blade-core-oss/src/main/java/org/springblade/core/oss/MinioTemplate.java)进行查看 2. 高频使用的api都有封装以及详细注释,大家可以前往阅读相关代码 ![](https://box.kancloud.cn/69165e34552a523dbf582e743cbcc6a2_1444x1778.png)