一、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 文件存储位置 设置端口号

image-20250422141821617

以上启动成功。

web界面:http://127.0.0.1:60906/login 默认账号密码:minioadmin/minioadmin

创建桶

image-20250422142154251

image-20250422142249796

三、在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());
    }
}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐