在上一篇文章中我们介绍了如何使用SpringBoot集成minio: 我是怎么做到开源系统中的文件上传等功能的?[1]
但是这个方式还是需要自己去写配置类去配置很多的东西,就在前不久我也写了一篇: 我开源了一款阿里云OSS的spring-boot-starter[2]
再然后我gitee仓库里面的这个项目 的star有点多: SpringBoot+MinIO[3]

最后我之前又发布了如何发布项目到maven中央仓库的教程: 如何发布jar包到maven中央仓库(2024年3月最新版保姆级教程)[4]
在之前我已经教大家使用linux安装了一个minio Linux安装MinIO(图文解说详细版)[5]
因为该有的条件都有了,万事俱备只欠东风,所以我就顺便写了一个minio-spring-boot-starter
,并且发布到了maven的中央仓库供大家使用。
maven仓库主页[6]
请使用1.0.0
版本
第一步,新建一个SpringBoot项目
SpringBoot入门:如何新建SpringBoot项目(保姆级教程)[7]
第二步,在pom文件里面引入jar包
<dependency>
<groupId>io.gitee.wangfugui-ma</groupId>
<artifactId>minio-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
第三步,配置你的minio信息
在yml或者properties文件中配置如下信息
minio:
url: http://120.76.201.118:9000 #对象存储服务的URL
accessKey: root #Access key账户
secretKey: 123456.com #Secret key密码
minio.url
对象存储服务的URL,就是你搭建minio时的url:Linux安装MinIO(图文解说详细版)[8]
minio.accessKey
accessKey,就是我们登录minio控制台的账户,这里我们设置了账户是root
minio.secretKey
相当于你minio的密码,就是我们上面控制台的密码
第四步,使用MinIOTemplate
@Autowired
MinIOTemplate minIOTemplate;
在你的项目中直接使用Autowired
注解注入MinIOTemplate
即可使用
第五步,验证是否可以使用
我们编写一个测试方法查询所有的bucket试试
@Test
void contextLoads() {
System.out.println(minIOTemplate.listBuckets());
}
这里是引用
可以看到这正是我们web页面看到的几个bucket。
所以,这次相比我们比上次的方式优雅多了,只需要引入minio-spring-boot-starter
之后再配置你的minio的信息,这样就可以使用了。
其他方法
-
1.
createBucket(String bucket)
: 创建一个新的存储桶。bucket
是要创建的存储桶的名称。这个方法没有返回值。 -
2.
uploadFile(InputStream stream, String bucket, String objectName)
: 上传一个文件到指定的存储桶。stream
是文件的输入流,bucket
是存储桶的名称,objectName
是文件在存储桶中的名称。这个方法没有返回值。 -
3.
listBuckets()
: 列出所有的存储桶。这个方法返回一个List<String>
,包含所有存储桶的名称。 -
4.
listFiles(String bucket)
: 列出指定存储桶中的所有文件和目录。bucket
是存储桶的名称。这个方法返回一个List<Fileinfo>
,每个Fileinfo
对象包含一个文件或目录的信息。 -
5.
download(String bucket, String objectName)
: 下载指定存储桶中的文件。bucket
是存储桶的名称,objectName
是文件在存储桶中的名称。这个方法返回一个InputStream
,可以用于读取下载的文件。 -
6.
deleteBucket(String bucket)
: 删除指定的存储桶。bucket
是要删除的存储桶的名称。这个方法没有返回值。 -
7.
deleteObject(String bucket, String objectName)
: 删除指定存储桶中的文件。bucket
是存储桶的名称,objectName
是要删除的文件的名称。这个方法没有返回值。 -
8.
copyObject(String sourceBucket, String sourceObject, String targetBucket, String targetObject)
: 复制一个文件到另一个存储桶。sourceBucket
和sourceObject
是源文件的存储桶和名称,targetBucket
和targetObject
是目标存储桶和名称。这个方法没有返回值。 -
9.
getObjectInfo(String bucket, String objectName)
: 获取指定文件的信息。bucket
是存储桶的名称,objectName
是文件的名称。这个方法返回一个String
,包含文件的信息。 -
10.
getPresignedObjectUrl(String bucketName, String objectName, Integer expires)
: 生成一个用于HTTP GET请求的预签名URL。bucketName
和objectName
是要下载的文件的存储桶和名称,expires
是URL的有效期(单位:秒)。这个方法返回一个String
,是预签名URL。 -
11.
listAllFile()
: 获取MinIO中所有的文件的信息。这个方法没有入参,返回一个List<Fileinfo>
,包含所有文件的信息。 -
12. 注意:其中的getMinioClient返回一个
MinioClient
,这样如果里面的封装好的方法不满足你的需求,可以自己使用MinioClient去编写你的代码,MinioClient是io.minio
包下面的,也就是minio自己的类。后续版本考虑支持
-
13. 添加更多丰富的api

引用链接
[1]
我是怎么做到开源系统中的文件上传等功能的?: https://blog.csdn.net/csdnerM/article/details/121370125[2]
我开源了一款阿里云OSS的spring-boot-starter: https://juejin.cn/post/7357979741667098658[3]
SpringBoot+MinIO: https://gitee.com/wangfugui-ma/spring-boot-minio[4]
如何发布jar包到maven中央仓库(2024年3月最新版保姆级教程): https://juejin.cn/post/7347207466818289703[5]
Linux安装MinIO(图文解说详细版): https://blog.csdn.net/csdnerM/article/details/121336618[6]
maven仓库主页: https://central.sonatype.com/namespace/io.gitee.wangfugui-ma[7]
SpringBoot入门:如何新建SpringBoot项目(保姆级教程): https://juejin.cn/post/7350168797637656576[8]
Linux安装MinIO(图文解说详细版): https://blog.csdn.net/csdnerM/article/details/121336618
原文始发于微信公众号(掉头发的王富贵):趁着无聊,写了一个minio-spring-boot-starter给大家使用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/296882.html