MinIO入门学习(三)

Springboot 整合 MinIO

项目通过maven构建首先添加MinIO的maven依赖

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>3.0.10</version>
</dependency>

在resources目录下创建minio.properties配置文件,内容如下:

minio.endpoint=http://localhost:9000
minio.accessKey=minioadmin
minio.secretKey=minioadmin
minio.bucketName=demo

在spring boot项目下创建MinioConfig配置类

使用ConfigurationProperties注解加载指定prefix的值 ,使用@PropertiesSource注解指定的配置文件,将minio.properties中的配置项加载进来

并创建MinioClient交给spring容器管理

复制代码
@Data
@Component
@ConfigurationProperties(prefix = "minio")
@PropertySource(value = "classpath:minio.properties")
public class MinioConfig {

    private String endpoint;

private String accessKey; private String secretKey; private String bucketName; @SneakyThrows @Bean public MinioClient getMinioClient() { MinioClient minioClient = new MinioClient(endpoint, accessKey, secretKey); return minioClient; } }
复制代码

 

创建MinioController,编写一个上传文件的方法

复制代码
@RequestMapping("/minio")
@RestController
public class MinioController {

    @Autowired
    private MinioClient minioClient;

    @Autowired
    private MinioConfig minioConfig;

    @PostMapping("upload")
    public String uploadFile(MultipartFile file) throws IOException {
        try {
            String fileName = file.getOriginalFilename();
            String objectName = new SimpleDateFormat("yyyy/MM/dd/").format(new Date()) + UUID.randomUUID().toString().replaceAll("-", "")
                    + fileName.substring(fileName.lastIndexOf("."));
            InputStream inputStream = file.getInputStream();
            minioClient.putObject(minioConfig.getBucketName(), objectName, inputStream,null);
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
            return "上传失败";
        }
        return "上传成功";
    }

}
复制代码

 

此处的

minioClient.putObject(minioConfig.getBucketName(), objectName, inputStream, null);

为方便理解直接写于controller层,后期应写于sevice层

 

再通过整合swagger或通过postman对controller中定义的接口进行测试。

个人通过整合swagger进行测试

目录结构如下:

浏览器输入localhost:9000访问MinIO后台管理即可管理存入的文件

 

本文作者:初夏†失忆

本文链接:https://www.cnblogs.com/Esummer/p/13795622.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   初夏†失忆  阅读(582)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起