121 lines
3.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.cdzy.ebikemaintenance.utils;
import io.minio.*;
import io.minio.http.Method;
import io.minio.messages.Bucket;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import java.io.InputStream;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Component
public class MinioUtil {
public final static String BUCKET_FAULT = "fault-report-bucket";
@Resource
private MinioClient minioClient;
/**
* 创建桶
* @param bucket 数据桶名称
* @throws Exception 异常
*/
public void createBucket(String bucket) throws Exception {
//查看桶是否存在
boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
if (!exists){
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
}
}
/**
* 上传文件
* @param inputStream 文件流
* @param bucket 数据桶名称
* @param objectName 文件名称
* @throws Exception 异常
*/
public void uploadFile(InputStream inputStream, String bucket, String objectName) throws Exception{
//上传文件
minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectName)
.stream(inputStream,-1,Integer.MAX_VALUE).build());
}
/**
* 获取文件分析连接7天有效
* @param bucket 数据桶名称
* @param fileName 文件名称
* @return url
* @throws Exception 异常
*/
public String getFileUrl(String bucket, String fileName) throws Exception {
return minioClient.getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.GET)
.bucket(bucket==null||bucket.isEmpty()? BUCKET_FAULT: bucket)
.object(fileName)
.expiry(7, TimeUnit.DAYS) // 有效期7天
.build()
);
}
/**
* 或曲解文件链接地址
*
* @param bucket 数据桶名称
* @param fileName 文件名称
* @return url
*/
public String getFileUrl2(String bucket, String fileName){
try {
String url = getFileUrl(bucket==null||bucket.isEmpty()? BUCKET_FAULT: bucket, fileName);
return url;
}catch (Exception e){
return null;
}
}
/**
* 获取所有的桶
* @return 数据桶名称列表
* @throws Exception 异常
*/
public List<String> getAllBucket() throws Exception{
List<Bucket> buckets = minioClient.listBuckets();
return buckets.stream().map(Bucket::name).collect(Collectors.toList());
}
/**
* 下载文件
* @param bucket 数据桶名称
* @param objectName 文件名称
* @return 文件流
* @throws Exception 异常
*/
public InputStream downLoad(String bucket,String objectName) throws Exception{
return minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(objectName).build());
}
/**
* 删除桶
* @param bucket 数据桶名称
* @throws Exception 异常
*/
public void deleteBucket(String bucket) throws Exception{
minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
}
/**
* 删除文件
* @param bucket 数据桶名称
* @param objectName 文件名称
* @throws Exception 异常
*/
public void deleteObject(String bucket,String objectName) throws Exception{
minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectName).build());
}
}