《笔记》使用minio实现文件上传
·
一、minio是什么
中文官网:https://www.minio.org.cn/
MinIO 是一种高性能、S3 兼容的对象存储。它专为大规模 AI/ML、数据湖和数据库工作负载而构建,并且它是由软件定义的存储。不需要购买任何专有硬件,就可以在云上和普通硬件上拥有分布式对象存储。MinIO拥有开源 GNU AGPL v3 和商业企业许可证的双重许可。
二、minio部署
下载地址:https://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe
打开cmd,进入到 minio.exe 文件存放的位置
执行:
minio.exe server D:/minio --console-address ":9001"
minio的主程序 server 文件存储位置 设置端口号

以上启动成功。
web界面:http://127.0.0.1:60906/login 默认账号密码:minioadmin/minioadmin
创建桶


三、在springboot 中使用minio上传文件
在pom文件中增加:
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.2</version>
</dependency>
创建一个客户端链接
MinioClient minioClient =
MinioClient.builder()
.endpoint("http://127.0.0.1:9000")
.build();
上传文件
minioClient.putObject(PutObjectArgs.builder().bucket("shopping").object(file.getOriginalFilename()).stream(
file.getInputStream(), file.getSize(), -1).build());
完整代码:
package cn.vihub.file.controller;
import cn.vihub.common.utils.RestJson;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
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 java.io.IOException;
@RestController
@RequestMapping("file/upload")
public class UploadController {
@PostMapping("img")
public RestJson<String> img(MultipartFile file) throws Exception {
MinioClient minioClient =
MinioClient.builder()
.endpoint("http://127.0.0.1:9000")
.build();
minioClient.putObject(PutObjectArgs.builder().bucket("shopping").object(file.getOriginalFilename()).stream(
file.getInputStream(), file.getSize(), -1).build());
return RestJson.OK("shopping/"+file.getOriginalFilename());
}
}
更多推荐


所有评论(0)