112 lines
3.0 KiB
Java
112 lines
3.0 KiB
Java
package com.sky.common.utils;
|
|
|
|
|
|
import com.sky.config.MinioConfig;
|
|
import io.minio.*;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.io.InputStream;
|
|
|
|
@Slf4j
|
|
public class MinioUtils {
|
|
@Resource
|
|
private MinioClient minioClient;
|
|
|
|
@Resource
|
|
private MinioConfig config;
|
|
|
|
/**
|
|
* 判断桶是否存在
|
|
*
|
|
* @param bucketName String
|
|
* @return found
|
|
*/
|
|
public boolean bucketExists(String bucketName) {
|
|
boolean found = false;
|
|
try {
|
|
found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return found;
|
|
}
|
|
|
|
/**
|
|
* 如果桶不存在就新建
|
|
*
|
|
* @param bucketName String
|
|
*/
|
|
public void bucketCreate(String bucketName) {
|
|
boolean exists = bucketExists(bucketName);
|
|
if (!exists) {
|
|
try {
|
|
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 上传文件
|
|
*
|
|
* @param fileName 文件名
|
|
* @param inputStream 输入流
|
|
* @param size 文件大小
|
|
*/
|
|
public String uploadFile(String bucketName, String fileName, InputStream inputStream, Long size) {
|
|
try {
|
|
minioClient.putObject(PutObjectArgs.builder()
|
|
.bucket(bucketName)
|
|
.object(fileName)
|
|
.stream(inputStream, size, -1)
|
|
.build());
|
|
return config.getEndpointUrl() + "/" + bucketName + "/" + fileName;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 上传文件
|
|
*
|
|
* @param fileName 文件名
|
|
* @param inputStream 输入流
|
|
* @param size 文件大小
|
|
* @param contentType 文件类型
|
|
*/
|
|
public String uploadFile(String bucketName, String fileName, InputStream inputStream, Long size, String contentType) {
|
|
try {
|
|
minioClient.putObject(PutObjectArgs.builder()
|
|
.bucket(bucketName)
|
|
.object(fileName)
|
|
.stream(inputStream, size, -1)
|
|
.contentType(contentType)
|
|
.build());
|
|
return config.getEndpointUrl() + "/" + bucketName + "/" + fileName;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取文件
|
|
*
|
|
* @param bucketName 桶名称
|
|
* @param fileName 对象名称
|
|
*/
|
|
public InputStream getFile(String bucketName, String fileName) {
|
|
try {
|
|
return minioClient.getObject(GetObjectArgs.builder()
|
|
.bucket(bucketName)
|
|
.object(fileName)
|
|
.build());
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
} |