From c45ce58884c59ddf8a6051ba370215e6f62adeb8 Mon Sep 17 00:00:00 2001
From: Administrator <1144154118@qq.com>
Date: 星期五, 28 七月 2023 10:11:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java | 81 +++++++++++++++++++++++++++++++++++-----
1 files changed, 71 insertions(+), 10 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
index 36f8fa5..85f91d9 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java
@@ -1,5 +1,6 @@
package com.ruoyi.device.hiksdk.util.minio;
+import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import io.minio.*;
import io.minio.http.Method;
@@ -9,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;
@@ -149,12 +151,15 @@
}
boolean exsit = exitsBucket(bucketName);
if (!exsit) {
- log.error(bucketName + "-妗朵笉瀛樺湪");
+ boolean bucket = createBucket(bucketName);
+ if (bucket) {
+ log.info(bucketName + "-妗朵笉瀛樺湪,鎴愬姛鍒涘缓妗�");
+ }
}
//鏂囦欢鍚�
String originalFilename = file.getOriginalFilename();
//鏂扮殑鏂囦欢鍚�
- String fileName = UUID.randomUUID().toString().replace("-", "") + originalFilename;
+ String fileName = IdUtils.fastSimpleUUID() + "_" + originalFilename;
try {
InputStream inputStream = file.getInputStream();
/*涓婁紶瀵硅薄*/
@@ -172,8 +177,63 @@
.builder()
.bucket(bucketName)
.object(fileName)
+ .method(Method.GET)
.build();
- return MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
+ return ObjectUrl;
+ } catch (Exception ex) {
+ log.error("涓婁紶瀵硅薄杩斿洖url寮傚父锛�" + ex.getMessage());
+ }
+ return "";
+ }
+
+ /**
+ * @鎻忚堪 涓婁紶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());
}
@@ -425,15 +485,16 @@
return false;
}
}
+
/**
- *@鎻忚堪 鑾峰彇妗朵腑鎵�鏈夊璞�
- *@鍙傛暟 [bucketName]
- *@杩斿洖鍊� java.lang.Iterable<io.minio.Result<io.minio.messages.Item>>
- *@鍒涘缓浜� 鍒樿嫃涔�
- *@鍒涘缓鏃堕棿 2023/2/6 10:32
- *@淇敼浜哄拰鍏跺畠淇℃伅
+ * @鎻忚堪 鑾峰彇妗朵腑鎵�鏈夊璞�
+ * @鍙傛暟 [bucketName]
+ * @杩斿洖鍊� java.lang.Iterable<io.minio.Result < io.minio.messages.Item>>
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/6 10:32
+ * @淇敼浜哄拰鍏跺畠淇℃伅
*/
- public static Iterable<Result<Item>> getObjectsByBucket(String bucketName) {
+ public static Iterable<Result<Item>> getObjectsByBucket(String bucketName) {
Iterable<Result<Item>> listObjects = MinioClientSingleton.getMinioClient().listObjects(ListObjectsArgs.builder()
.bucket(bucketName)
.recursive(true)
--
Gitblit v1.9.3