前言
新版Minio的SDK变得还是挺大的,网上很多都是旧版的资料,很多都不好用,所以自己去肝官方文档,然后基于最新的API,制作了 spring-boot-starter,开箱即用。
地址
nau.minio.spring-boot-starter: minio springboot的starter (gitee.com)
示例
1.MinioService 中对官方sdk进行了高级封装,可以通过MinioService 获取上传链接(用于前端直传),获取下载链接(临时链接),查询文件信息。
@Autowired
private MinioService minioService;
@Test
void testService() throws Exception {
//获取上传链接 dateDir 1-》为创建日期文件夹 2021/10/28/ 2021/10/29/ 创建后文件全名即:2021/10/29/111111.jpg
String bucket1 = minioService.getUploadUrl("bucket1", "111111.jpg", 7200, 1);
System.out.println(bucket1);
//获取下载链接
String url = minioService.getObjectUrl("bucket1", "2021/10/29/111111.jpg", 7200);
System.out.println(url);
//获取文件详情。也可获取文件夹详细 如 prefix=2021/10/ 即可获得2021/10文件夹下的所有子文件夹 2021/10/28,2021/10/29 .。。。
List<MinioItem> objects = minioService.getAllObjectsByPrefix("bucket1", "2021/10/29/111111.jpg", true);
System.out.println(objects);
}
2.minioTemplate 简化了一些官方SDK的常用方法的调用。
@Autowired
private MinioTemplate minioTemplate;
@Test
void testTemplate() throws Exception {
//检查桶是否存储
boolean bucket1 = minioTemplate.bucketExists("bucket1");
System.out.println(bucket1);
}
3. MinioClient即为官方的MinioClient. 官方文档:官方API文档
@Autowired
private MinioClient minioClient;
@Test
void testMinioClient() throws Exception {
boolean bucket1 = minioClient.bucketExists(BucketExistsArgs.builder().bucket("bucket1").build());
System.out.println(bucket1);
}