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;@Beanpublic 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*/@SneakyThrowspublic Boolean bucketExists(String bucketName) {return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());}/*** 创建存储bucket** @return Boolean*/@SneakyThrowspublic void makeBucket(String bucketName) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}/*** 删除存储bucket* @return Boolean*/@SneakyThrowspublic void removeBucket(String bucketName) {minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());}/*** 获取全部bucket*/@SneakyThrowspublic List<Bucket> listBuckets() {return minioClient.listBuckets();}/*** 获取文件的url* @param fileName* @return*/@SneakyThrowspublic String getPresignedObjectUrl(String fileName){GetPresignedObjectUrlArgs build = GetPresignedObjectUrlArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).method(Method.GET).build();return minioClient.getPresignedObjectUrl(build);}/*** 查看文件对象* @return 存储bucket内文件对象信息*/@SneakyThrowspublic 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*/@SneakyThrowspublic void remove(String fileName) {minioClient.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).build());}}
4.yml配置文件
minio:#访问的URLendpoint: #密钥accessKey: secretKey:
5.测试文件
@Testvoid bucketExists() {Boolean test = minioService.bucketExists("test");
// Boolean test = minioService.bucketExists("test");System.out.println("查看bucket是否存在" + test);}