MinIO是一个开源的对象存储服务器,它兼容Amazon S3 API。它提供了一个简单而强大的存储解决方案,可以用于存储和检索任意大小的文件对象,如图片、视频、文档等。
1.安装与配置Minio
https://dl.min.io/server/minio/release/windows-amd64/https://dl.min.io/server/minio/release/windows-amd64/ cmd的方式打开minio.exe所在的文件夹
1.1 设置管理员账号和密码
set MINIO_ACCESS_KEY=minioadmin //创建账号
set MINIO_SECRET_KEY=minioadmin //创建密码
1.2 执行以下指令启动minio
minio.exe server D:\install\WONIU-J-Install\minio --console-address “:9001” --address “:9000”
1.3 浏览器上访问9001端口
localhost:9090
登陆后可以创建buket
1.4 设置访问规则
进入管理页面之后,找到“Access Rules”选项并点击,添加访问规则,因为默认情况下桶里面的数据是不能访问的
点击“Add Access Rule”按钮添加访问规则
1.5 输入访问前缀、选择该前缀对应的访问权限
现在上传的文件就可以分享给别人了,但是分享连接有有效期
1.6 设置永久访问连接
1.6.1 下载mc客户端
https://dl.min.io/client/mc/release/windows-amd64/https://dl.min.io/client/mc/release/windows-amd64/ 将下载好的mc.exe放到与minio相同位置
1.6.2 设置永久访问连接
mc.exe config host add minio http://192.168.2.163:9000 minioadmin minioadmin --api S3v4
然后执行 mc anonymous set download minio/桶名,在将文件设置为公共读就可以通过 http://服务器ip:端口/桶名称/文件名称 直接访问到了
2. 在Spring Boot项目中使用minio
2.1 导入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2.2 设置yml配置
spring:
# 配置文件上传大小限制
servlet:
multipart:
max-file-size: 200MB
max-request-size: 200MB
minio:
endpoint: http://192.168.2.163:9000
accesskey: minioadmin
secretKey: minioadmin
bucketName: mall
2.3 创建minio配置类
import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "minio")
public class MinioConfiguration {
//
private String endpoint; //连接url
private String accesskey; //用户名
private String secretKey; //密码
@Bean
public MinioClient minioClient(){
return MinioClient.builder().endpoint(endpoint).credentials(accesskey,secretKey).build();
}
}
2.4 创建工具类
2.5 上传文件
import com.woniuxy.minio.util.MinioUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@RestController
@RequestMapping("/file")
public class FileController {
@Resource
private MinioUtil minioUtil;
@PostMapping("/upload")
public Object upload(MultipartFile file){
return minioUtil.upload(new MultipartFile[]{file});
}
}