SpringBoot整合Minio对象存储服务

185 阅读1分钟

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。

MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。 这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。

MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。

1.添加依赖

io.minio minio 8.2.1

2.添加配置 spring: # 配合minio加大内存限制 servlet: multipart: max-file-size: 5120MB max-request-size: 5120MB # minio对象存储服务配置 minio: url: www.jyglxt.com:9010 access-key: caixibei secret-key: Abcd123. bucket: software

2.编写配置类

package cn.jxd.caixibei.config; import cn.jxd.caixibei.units.MinioUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Slf4j @Configuration public class MinioConfig { /** * url / @Value(value = "spring.minio.url")privateStringminioUrl;/username/@Value(value="{spring.minio.url}") private String minioUrl; /** * username */ @Value(value = "{spring.minio.access-key}") private String minioName; /* * password */ @Value(value = "spring.minio.secretkey")privateStringminioPass;@Value(value="{spring.minio.secret-key}") private String minioPass; @Value(value = "{spring.minio.bucket}") private String bucketName; @Bean public void initMinio(){ if(!minioUrl.startsWith("http")){ minioUrl = "http://" + minioUrl; } if(!minioUrl.endsWith("/")){ minioUrl = minioUrl.concat("/"); } MinioUtils.setMinioUrl(minioUrl); MinioUtils.setMinioName(minioName); MinioUtils.setMinioPass(minioPass); MinioUtils.setBucketName(bucketName); } }