You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.1 KiB
Java

1 year ago
package com.supervision.nxllmcommon.util;
import io.minio.*;
import io.minio.http.Method;
import lombok.extern.slf4j.Slf4j;
import java.io.InputStream;
import java.util.UUID;
@Slf4j
public class MinioUtil {
private static final MinioClient minioClient = SpringBeanUtil.getBean(MinioClient.class);
private static final String bucketName = SpringBeanUtil.getBean(MinioProperties.class).getBucketName();
static {
try {
if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
log.info("未找到bucket,自动建立");
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
*/
public static String uploadFile(InputStream stream) throws Exception {
ObjectWriteResponse objectWriteResponse = minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(UUID.randomUUID().toString())
.stream(stream, stream.available(), -1).build());
return objectWriteResponse.object();
}
/**
*
* @param stream
* @param contentType
* @return id
* @throws Exception
*/
public static String uploadFile(InputStream stream,String contentType) throws Exception {
ObjectWriteResponse objectWriteResponse = minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(UUID.randomUUID().toString())
.stream(stream, stream.available(), -1).contentType(contentType).build());
return objectWriteResponse.object();
}
/**
*
*/
public static InputStream download(String fileId) throws Exception {
return minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileId).build());
}
/**
*
*/
public static void deleteObject(String fileId) throws Exception {
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(fileId).build());
}
/**
*
*
* @Param: [bucket, objectName]
* @return: java.lang.String
* @Author: MrFugui
* @Date: 2021/11/15
*/
public static String getObjectInfo(String fileId) throws Exception {
return minioClient.statObject(StatObjectArgs.builder().bucket(bucketName).object(fileId).build()).toString();
}
/**
* HTTP GETpresigned URL/URL使
*
* @Param: [bucketName, objectName, expires]
* @return: java.lang.String
* @Author: MrFugui
* @Date: 2021/11/15
*/
public static String getPresignedObjectUrl(String bucketName, String objectName, Integer expires) throws Exception {
GetPresignedObjectUrlArgs build = GetPresignedObjectUrlArgs
.builder().bucket(bucketName).object(objectName).expiry(expires).method(Method.GET).build();
return minioClient.getPresignedObjectUrl(build);
}
}