‘liusuyi’
2023-07-22 20be3330cc7d420bac5233bcd2e832d0bd61f53c
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
@@ -10,6 +10,7 @@
import io.minio.messages.Item;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -151,8 +152,7 @@
        boolean exsit = exitsBucket(bucketName);
        if (!exsit) {
            boolean bucket = createBucket(bucketName);
            if(bucket)
            {
            if (bucket) {
                log.info(bucketName + "-桶不存在,成功创建桶");
            }
        }
@@ -189,6 +189,58 @@
    }
    /**
     * @描述 上传MultipartFile文件返回url
     * @参数 [bucketName, file]
     * @返回值 java.lang.String
     * @创建人 刘苏义
     * @创建时间 2023/5/18 12:16
     * @修改人和其它信息
     */
    public static String putObjectAndGetUrl(String bucketName, String folder, MultipartFile file) {
        //判断文件是否为空
        if (null == file || 0 == file.getSize()) {
            log.error("上传minio文件服务器错误,上传文件为空");
        }
        boolean exsit = exitsBucket(bucketName);
        if (!exsit) {
            boolean bucket = createBucket(bucketName);
            if (bucket) {
                log.info(bucketName + "-桶不存在,成功创建桶");
            }
        }
        //文件名
        String originalFilename = file.getOriginalFilename();
        //新的文件名
        String fileName = folder + "/" + IdUtils.fastSimpleUUID() + "_" + originalFilename;
        try {
            InputStream inputStream = file.getInputStream();
            /*上传对象*/
            PutObjectArgs putObjectArgs = PutObjectArgs
                    .builder()
                    .bucket(bucketName)
                    .object(fileName)
                    .stream(inputStream, file.getSize(), -1)
                    .contentType(file.getContentType())
                    .build();
            MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
            inputStream.close();
            /*获取url*/
            GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs
                    .builder()
                    .bucket(bucketName)
                    .object(fileName)
                    .method(Method.GET)
                    .build();
            String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
            String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
            return ObjectUrl;
        } catch (Exception ex) {
            log.error("上传对象返回url异常:" + ex.getMessage());
        }
        return "";
    }
    /**
     * 删除文件
     *
     * @param bucket     桶名称