From 7ee6e3feeda334e40da912f0e31898e08b59de46 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期五, 04 八月 2023 17:28:48 +0800
Subject: [PATCH] 修复雷达引导相机为null的bug
---
ard-work/src/main/java/com/ruoyi/device/hiksdk/util/minio/MinioUtils.java | 134 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 112 insertions(+), 22 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..46a3ded 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,7 @@
package com.ruoyi.device.hiksdk.util.minio;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import io.minio.*;
import io.minio.http.Method;
@@ -9,6 +11,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;
@@ -30,6 +33,10 @@
public static boolean exitsBucket(String bucketName) {
boolean found = false;
try {
+ if(StringUtils.isEmpty(bucketName))
+ {
+ return false;
+ }
BucketExistsArgs bucketExistsArgs = BucketExistsArgs.builder().bucket(bucketName).build();
found = MinioClientSingleton.getMinioClient().bucketExists(bucketExistsArgs);
} catch (Exception ex) {
@@ -43,6 +50,10 @@
*/
public static boolean createBucket(String bucketName) {
try {
+ if(StringUtils.isEmpty(bucketName))
+ {
+ return false;
+ }
/*鍒涘缓妗�*/
MakeBucketArgs makeBucketArgs = MakeBucketArgs.builder().bucket(bucketName).build();
MinioClientSingleton.getMinioClient().makeBucket(makeBucketArgs);
@@ -131,6 +142,10 @@
log.error("minio鐢熸垚澶辨晥url寮傚父", ex.getMessage());
}
}
+ else
+ {
+ createBucket(bucketName);
+ }
return url;
}
@@ -143,18 +158,25 @@
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
public static String putObjectAndGetUrl(String bucketName, MultipartFile file) {
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
+ }
//鍒ゆ柇鏂囦欢鏄惁涓虹┖
if (null == file || 0 == file.getSize()) {
log.error("涓婁紶minio鏂囦欢鏈嶅姟鍣ㄩ敊璇紝涓婁紶鏂囦欢涓虹┖");
}
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 +194,67 @@
.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(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
+ }
+ //鍒ゆ柇鏂囦欢鏄惁涓虹┖
+ 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());
}
@@ -291,6 +372,10 @@
*/
public static boolean uploadObject(String bucketName, String objectName, InputStream stream, long size, String contextType) {
try {
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
+ }
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.bucket(bucketName)
.object(objectName)
@@ -315,6 +400,10 @@
*/
public static boolean uploadObject(String bucketName, String objectName, File file, String contextType) {
try {
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
+ }
FileInputStream fileInputStream = new FileInputStream(file);
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.bucket(bucketName)
@@ -340,13 +429,9 @@
*/
public static boolean uploadObject(String bucketName, String objectName, MultipartFile multipartFile, String contextType) {
try {
- if (bucketName.isEmpty()) {
- log.error("bucket鍚嶇О涓虹┖");
- return false;
- }
- if (objectName.isEmpty()) {
- log.error("瀵硅薄鍚嶇О涓虹┖");
- return false;
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
}
InputStream inputStream = multipartFile.getInputStream();
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
@@ -373,6 +458,10 @@
*/
public static boolean uploadObject(String bucketName, MultipartFile multipartFile, String contextType) {
try {
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
+ }
if (multipartFile == null) {
log.error("涓婁紶鏂囦欢涓虹┖");
return false;
@@ -401,11 +490,11 @@
* @param localFilePathName
* @return
*/
- public static boolean uploadObject(String bulkName, String objectName, String localFilePathName, String contextType) {
+ public static boolean uploadObject(String bucketName, String objectName, String localFilePathName, String contextType) {
try {
- if (!exitsBucket(bulkName)) {
- log.debug(bulkName + "涓嶅瓨鍦�");
- return false;
+ if(!exitsBucket(bucketName))
+ {
+ createBucket(bucketName);
}
File file = new File(localFilePathName);
if (!file.exists()) {
@@ -413,7 +502,7 @@
return false;
}
UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
- .bucket(bulkName)
+ .bucket(bucketName)
.object(objectName)
.filename(localFilePathName)
.contentType(contextType)
@@ -425,15 +514,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