1.pom文件引入
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
2.MinioConfig配置文件
package com.example.demo.config;
import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {
private String endpoint;
private String accessKey;
private String secretKey;
private String bucketName;
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint(endpoint)
.credentials(accessKey, secretKey)
.build();
}
}
3.Service代码
package com.example.demo.service;
import com.example.demo.config.MinioConfig;
import io.minio.*;
import io.minio.http.Method;
import io.minio.messages.Bucket;
import io.minio.messages.Item;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Author JiaQIng
* @Description MinioService
* @ClassName MinioService
* @Date 21点19分
**/
@Service
@RequiredArgsConstructor
public class MinioService {
private final MinioClient minioClient;
private final MinioConfig minioConfig;
/**
* 查看bucket是否存在
*
* @param bucketName
* @return
*/
@SneakyThrows
public Boolean bucketExists(String bucketName) {
return minioClient.bucketExists(BucketExistsArgs.builder()
.bucket(bucketName)
.build());
}
/**
* 创建存储bucket
*
* @return Boolean
*/
@SneakyThrows
public void makeBucket(String bucketName) {
minioClient.makeBucket(MakeBucketArgs.builder()
.bucket(bucketName)
.build());
}
/**
* 删除存储bucket
* @return Boolean
*/
@SneakyThrows
public void removeBucket(String bucketName) {
minioClient.removeBucket(RemoveBucketArgs.builder()
.bucket(bucketName)
.build());
}
/**
* 获取全部bucket
*/
@SneakyThrows
public List<Bucket> listBuckets() {
return minioClient.listBuckets();
}
/**
* 获取文件的url
* @param fileName
* @return
*/
@SneakyThrows
public String getPresignedObjectUrl(String fileName){
GetPresignedObjectUrlArgs build = GetPresignedObjectUrlArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).method(Method.GET).build();
return minioClient.getPresignedObjectUrl(build);
}
/**
* 查看文件对象
* @return 存储bucket内文件对象信息
*/
@SneakyThrows
public List<Item> listObjects() {
Iterable<Result<Item>> results = minioClient.listObjects(
ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).build());
List<Item> items = new ArrayList<>();
for (Result<Item> result : results) {
items.add(result.get());
}
return items;
}
/**
* 删除
* @param fileName
* @return
* @throws Exception
*/
@SneakyThrows
public void remove(String fileName) {
minioClient.removeObject(RemoveObjectArgs.builder().
bucket(minioConfig.getBucketName())
.object(fileName)
.build());
}
}
4.yml配置文件
minio:
#访问的URL
endpoint:
#密钥
accessKey:
secretKey:
5.测试文件
@Test
void bucketExists() {
Boolean test = minioService.bucketExists("test");
// Boolean test = minioService.bucketExists("test");
System.out.println("查看bucket是否存在" + test);
}