From cf7a09fdfb98e41039e08af1ff5e9dacfbecfc03 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 23 八月 2023 17:13:31 +0800
Subject: [PATCH] 新增配置工具类 迁移配置信息实体类到common包
---
ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java | 158 +++++++++++++++++++++++++++++-----------------------
1 files changed, 88 insertions(+), 70 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
index c063b73..7cbcec6 100644
--- a/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/utils/MinioUtils.java
@@ -2,13 +2,14 @@
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;
import io.minio.messages.*;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
import java.io.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -22,19 +23,23 @@
**/
@SuppressWarnings("ALL")
@Slf4j(topic = "minio")
+@Component
public class MinioUtils {
+
+ @Resource
+ MinioClient minioClient;
/**
* 鍒ゆ柇妗舵槸鍚﹀瓨鍦�
*/
- public static boolean exitsBucket(String bucketName) {
+ public 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);
+ found = minioClient.bucketExists(bucketExistsArgs);
} catch (Exception ex) {
log.error("minio鍒ゆ柇妗跺瓨鍦ㄥ紓甯革細", ex.getMessage());
@@ -45,14 +50,14 @@
/**
* 鍒涘缓妗�,骞惰缃《绛栫暐涓哄叕鍏�
*/
- public static boolean createBucket(String bucketName) {
+ public boolean createBucket(String bucketName) {
try {
if (StringUtils.isEmpty(bucketName)) {
return false;
}
/*鍒涘缓妗�*/
MakeBucketArgs makeBucketArgs = MakeBucketArgs.builder().bucket(bucketName).build();
- MinioClientSingleton.getMinioClient().makeBucket(makeBucketArgs);
+ minioClient.makeBucket(makeBucketArgs);
/*璁剧疆绛栫暐*/
String sb = "{\"Version\":\"2012-10-17\"," +
"\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":" +
@@ -72,7 +77,7 @@
queueConfiguration.setQueue("arn:minio:sqs::_:mqtt");
//璁剧疆浜嬩欢
- List<EventType> events=new ArrayList<>();
+ List<EventType> events = new ArrayList<>();
events.add(EventType.OBJECT_REMOVED_ANY);
events.add(EventType.OBJECT_CREATED_ANY);
queueConfiguration.setEvents(events);
@@ -82,8 +87,8 @@
SetBucketNotificationArgs setBucketNotificationArgs = SetBucketNotificationArgs.builder()
.bucket(bucketName)
.config(config).build();
- MinioClientSingleton.getMinioClient().setBucketPolicy(setBucketPolicyArgs);
- MinioClientSingleton.getMinioClient().setBucketNotification(setBucketNotificationArgs);
+ minioClient.setBucketPolicy(setBucketPolicyArgs);
+ minioClient.setBucketNotification(setBucketNotificationArgs);
return true;
} catch (Exception ex) {
@@ -97,11 +102,11 @@
*
* @param bucket 妗跺悕绉�
*/
- public static boolean removeBucket(String bucket) {
+ public boolean removeBucket(String bucket) {
try {
boolean found = exitsBucket(bucket);
if (found) {
- Iterable<Result<Item>> myObjects = MinioClientSingleton.getMinioClient().listObjects(ListObjectsArgs.builder().bucket(bucket).build());
+ Iterable<Result<Item>> myObjects = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucket).build());
for (Result<Item> result : myObjects) {
Item item = result.get();
//鏈夊璞℃枃浠讹紝鍒欏垹闄ゅけ璐�
@@ -110,7 +115,7 @@
}
}
// 鍒犻櫎`bucketName`瀛樺偍妗讹紝娉ㄦ剰锛屽彧鏈夊瓨鍌ㄦ《涓虹┖鏃舵墠鑳藉垹闄ゆ垚鍔熴��
- MinioClientSingleton.getMinioClient().removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
+ minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
found = exitsBucket(bucket);
return !found;
}
@@ -125,9 +130,9 @@
*
* @return
*/
- public static List<Bucket> getListBuckets() {
+ public List<Bucket> getListBuckets() {
try {
- return MinioClientSingleton.getMinioClient().listBuckets();
+ return minioClient.listBuckets();
} catch (Exception e) {
e.printStackTrace();
}
@@ -143,7 +148,7 @@
* @param expires 澶辨晥鏃堕棿锛堜互绉掍负鍗曚綅锛夛紝榛樿鏄�7澶╋紝涓嶅緱澶т簬涓冨ぉ
* @return
*/
- public static String getObjectWithExpired(String bucketName, String objectName, Integer expires, TimeUnit timeUnit) {
+ public String getObjectWithExpired(String bucketName, String objectName, Integer expires, TimeUnit timeUnit) {
String url = "";
if (exitsBucket(bucketName)) {
try {
@@ -153,7 +158,7 @@
.object(objectName)
.expiry(expires, timeUnit)
.build();
- url = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ url = minioClient.getPresignedObjectUrl(getPresignedObjectUrlArgs);
} catch (Exception ex) {
log.error("minio鐢熸垚澶辨晥url寮傚父", ex.getMessage());
}
@@ -171,7 +176,7 @@
* @鍒涘缓鏃堕棿 2023/5/18 12:16
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
- public static String putObjectAndGetUrl(String bucketName, MultipartFile file) {
+ public String putObjectAndGetUrl(String bucketName, MultipartFile file) {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
@@ -200,7 +205,7 @@
.stream(inputStream, file.getSize(), -1)
.contentType(file.getContentType())
.build();
- MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ minioClient.putObject(putObjectArgs);
inputStream.close();
/*鑾峰彇url*/
GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs
@@ -209,7 +214,7 @@
.object(fileName)
.method(Method.GET)
.build();
- String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String presignedObjectUrl = minioClient.getPresignedObjectUrl(getPresignedObjectUrlArgs);
String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
return ObjectUrl;
} catch (Exception ex) {
@@ -226,7 +231,7 @@
* @鍒涘缓鏃堕棿 2023/5/18 12:16
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
- public static String putObjectAndGetUrl(String bucketName, String folder, MultipartFile file) {
+ public String putObjectAndGetUrl(String bucketName, String folder, MultipartFile file) {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
}
@@ -255,7 +260,7 @@
.stream(inputStream, file.getSize(), -1)
.contentType(file.getContentType())
.build();
- MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ minioClient.putObject(putObjectArgs);
inputStream.close();
/*鑾峰彇url*/
GetPresignedObjectUrlArgs getPresignedObjectUrlArgs = GetPresignedObjectUrlArgs
@@ -264,7 +269,7 @@
.object(fileName)
.method(Method.GET)
.build();
- String presignedObjectUrl = MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String presignedObjectUrl = minioClient.getPresignedObjectUrl(getPresignedObjectUrlArgs);
String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
return ObjectUrl;
} catch (Exception ex) {
@@ -280,12 +285,12 @@
* @param objectName 瀵硅薄鍚嶇О
* @return boolean
*/
- public static boolean removeObject(String bucket, String objectName) {
+ public boolean removeObject(String bucket, String objectName) {
try {
boolean exsit = exitsBucket(bucket);
if (exsit) {
RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder().bucket(bucket).object(objectName).build();
- MinioClientSingleton.getMinioClient().removeObject(removeObjectArgs);
+ minioClient.removeObject(removeObjectArgs);
return true;
}
} catch (Exception e) {
@@ -300,7 +305,7 @@
* @param objectNames 瀵硅薄鍚嶇О
* @return boolean
*/
- public static boolean removeObjects(String bucket, List<String> objectNames) {
+ public boolean removeObjects(String bucket, List<String> objectNames) {
if (exitsBucket(bucket)) {
try {
List<DeleteObject> objects = new LinkedList<>();
@@ -308,7 +313,7 @@
objects.add(new DeleteObject(str));
}
RemoveObjectsArgs removeObjectsArgs = RemoveObjectsArgs.builder().bucket(bucket).objects(objects).build();
- Iterable<Result<DeleteError>> results = MinioClientSingleton.getMinioClient().removeObjects(removeObjectsArgs);
+ Iterable<Result<DeleteError>> results = minioClient.removeObjects(removeObjectsArgs);
/*鍒犻櫎瀹岄亶鍘嗙粨鏋滐紝鍚﹀垯鍒犱笉鎺�*/
for (Result<DeleteError> result : results) {
DeleteError error = result.get();
@@ -329,13 +334,38 @@
* @param bucket 妗跺悕绉�
* @return {@link List}<{@link String}>
*/
- public static List<String> getBucketObjectName(String bucket) {
+ public List<String> getBucketObjectName(String bucket) {
boolean exsit = exitsBucket(bucket);
if (exsit) {
List<String> listObjetcName = new ArrayList<>();
try {
ListObjectsArgs listObjectsArgs = ListObjectsArgs.builder().bucket(bucket).build();
- Iterable<Result<Item>> myObjects = MinioClientSingleton.getMinioClient().listObjects(listObjectsArgs);
+ Iterable<Result<Item>> myObjects = minioClient.listObjects(listObjectsArgs);
+ for (Result<Item> result : myObjects) {
+ Item item = result.get();
+ listObjetcName.add(item.objectName());
+ }
+ return listObjetcName;
+ } catch (Exception ex) {
+ log.error("minio鑾峰彇妗朵笅瀵硅薄寮傚父锛�" + ex.getMessage());
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 鑾峰彇鍗曚釜妗朵腑鐨勬墍鏈夋枃浠跺璞″悕绉�
+ *
+ * @param [bucket,prefix]
+ * @return {@link List}<{@link String}>
+ */
+ public List<String> getBucketObjectName(String bucket, String prefix) {
+ boolean exsit = exitsBucket(bucket);
+ if (exsit) {
+ List<String> listObjetcName = new ArrayList<>();
+ try {
+ ListObjectsArgs listObjectsArgs = ListObjectsArgs.builder().prefix(prefix).bucket(bucket).build();
+ Iterable<Result<Item>> myObjects = minioClient.listObjects(listObjectsArgs);
for (Result<Item> result : myObjects) {
Item item = result.get();
listObjetcName.add(item.objectName());
@@ -355,7 +385,7 @@
* @param objectName 瀵硅薄鍚� (鏂囦欢澶瑰悕 + 鏂囦欢鍚�)
* @return
*/
- public static String getBucketObjectUrl(String bucketName, String objectName) {
+ public String getBucketObjectUrl(String bucketName, String objectName) {
try {
if (!exitsBucket(bucketName)) {
return "";
@@ -366,7 +396,9 @@
.object(objectName)
.method(Method.GET)
.build();
- return MinioClientSingleton.getMinioClient().getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String presignedObjectUrl = minioClient.getPresignedObjectUrl(getPresignedObjectUrlArgs);
+ String ObjectUrl = presignedObjectUrl.substring(0, presignedObjectUrl.indexOf("?"));
+ return ObjectUrl;
} catch (Exception ex) {
log.error("minio鑾峰彇瀵硅薄URL寮傚父" + ex.getMessage());
}
@@ -382,7 +414,7 @@
* @param size 饧も缉
* @param contextType 绫诲瀷 Image/jpeg 娴忚鍣ㄥ彲浠ョ洿鎺ユ墦寮�锛屽惁鍒欎笅杞�
*/
- public static boolean uploadObject(String bucketName, String objectName, InputStream stream, long size, String contextType) {
+ public boolean uploadObject(String bucketName, String objectName, InputStream stream, long size, String contextType) {
try {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
@@ -393,7 +425,7 @@
.stream(stream, size, -1)
.contentType(contextType)
.build();
- ObjectWriteResponse objectWriteResponse = MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
return true;
} catch (Exception ex) {
log.error("minio涓婁紶鏂囦欢(閫氳繃stream)寮傚父" + ex.getMessage());
@@ -409,7 +441,7 @@
* @param file 饨備欢
* @param contextType 绫诲瀷 Image/jpeg 娴忚鍣ㄥ彲浠ョ洿鎺ユ墦寮�锛屽惁鍒欎笅杞�
*/
- public static boolean uploadObject(String bucketName, String objectName, File file, String contextType) {
+ public boolean uploadObject(String bucketName, String objectName, File file, String contextType) {
try {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
@@ -421,7 +453,7 @@
.stream(fileInputStream, file.length(), -1)
.contentType(contextType)
.build();
- ObjectWriteResponse objectWriteResponse = MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
return true;
} catch (Exception ex) {
log.error("minio涓婁紶鏂囦欢(閫氳繃File)寮傚父" + ex.getMessage());
@@ -437,7 +469,7 @@
* @param MultipartFile 饨備欢
* @param contextType 绫诲瀷 Image/jpeg 娴忚鍣ㄥ彲浠ョ洿鎺ユ墦寮�锛屽惁鍒欎笅杞�
*/
- public static boolean uploadObject(String bucketName, String objectName, MultipartFile multipartFile, String contextType) {
+ public boolean uploadObject(String bucketName, String objectName, MultipartFile multipartFile, String contextType) {
try {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
@@ -449,7 +481,7 @@
.stream(inputStream, multipartFile.getSize(), -1)
.contentType(contextType)
.build();
- ObjectWriteResponse objectWriteResponse = MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
return true;
} catch (Exception ex) {
log.error("minio涓婁紶鏂囦欢(閫氳繃File)寮傚父" + ex.getMessage());
@@ -465,7 +497,7 @@
* @param MultipartFile 饨備欢
* @param contextType 绫诲瀷 Image/jpeg 娴忚鍣ㄥ彲浠ョ洿鎺ユ墦寮�锛屽惁鍒欎笅杞�
*/
- public static boolean uploadObject(String bucketName, MultipartFile multipartFile, String contextType) {
+ public boolean uploadObject(String bucketName, MultipartFile multipartFile, String contextType) {
try {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
@@ -482,7 +514,7 @@
.stream(inputStream, multipartFile.getSize(), -1)
.contentType(contextType)
.build();
- MinioClientSingleton.getMinioClient().putObject(putObjectArgs);
+ minioClient.putObject(putObjectArgs);
return true;
} catch (Exception ex) {
log.error("minio涓婁紶鏂囦欢(閫氳繃File)寮傚父" + ex.getMessage());
@@ -498,7 +530,7 @@
* @param localFilePathName
* @return
*/
- public static boolean uploadObject(String bucketName, String objectName, String localFilePathName, String contextType) {
+ public boolean uploadObject(String bucketName, String objectName, String localFilePathName, String contextType) {
try {
if (!exitsBucket(bucketName)) {
createBucket(bucketName);
@@ -514,7 +546,7 @@
.filename(localFilePathName)
.contentType(contextType)
.build();
- ObjectWriteResponse objectWriteResponse = MinioClientSingleton.getMinioClient().uploadObject(uploadObjectArgs);
+ ObjectWriteResponse objectWriteResponse = minioClient.uploadObject(uploadObjectArgs);
return true;
} catch (Exception e) {
log.error("minio upload object file error " + e.getMessage());
@@ -530,42 +562,28 @@
* @鍒涘缓鏃堕棿 2023/2/6 10:32
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
- public static Iterable<Result<Item>> getObjectsByBucket(String bucketName) {
- Iterable<Result<Item>> listObjects = MinioClientSingleton.getMinioClient().listObjects(ListObjectsArgs.builder()
+ public Iterable<Result<Item>> getObjectsByBucket(String bucketName) {
+ Iterable<Result<Item>> listObjects = minioClient.listObjects(ListObjectsArgs.builder()
.bucket(bucketName)
.recursive(true)
.build());
return listObjects;
}
- public static void main(String[] args) {
- // /*鍒犻櫎妗�*/
- // boolean b = removeBucket("lsy");
- // log.info(String.valueOf(b));
- // /*鍒涘缓妗�*/
- // boolean lsy = createBucket("lsy");
- // log.info(String.valueOf(lsy));
- // /*鍒ゆ柇妗舵槸鍚﹀瓨鍦�*/
- // boolean pic = exitsBucket("lsy");
- // log.info(String.valueOf(pic));
- /*鏌ヨ鎵�鏈夋《*/
- // List<Bucket> listBuckets = getListBuckets();
- // for (Bucket bucket : listBuckets) {
- // log.info(bucket.name());
- // }
- String bucket = "lsy";
- String filename = UUID.randomUUID().toString().replace("-", "") + "pic.jpeg";
- String fileFullPath = "C:\\Users\\Administrator\\Desktop\\寰俊鎴浘_20230518102605.png";
- // uploadObject(bucket, filename, fileFullPath, "Image/jpeg");
- // String url = getObjectWithExpired(bucket, filename, 10, SECONDS);
- // System.out.println(url);
- boolean b = removeBucket(bucket);
- System.out.println(b);
- // boolean b = uploadObjectBylocalPath(bucket, filename, fileFullPath);
- // System.out.println(b);
- //String url = getObjectWithExpired(bucket, filename, 10000);
- //
- //String url = getBucketObject(bucket, filename);
- // System.out.println(url); package com.example.minio;
+ /**
+ * @鎻忚堪 鑾峰彇妗朵腑鎵�鏈夊璞�
+ * @鍙傛暟 [bucketName, prefix]
+ * @杩斿洖鍊� java.lang.Iterable<io.minio.Result < io.minio.messages.Item>>
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/2/6 10:32
+ * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ public Iterable<Result<Item>> getObjectsByBucket(String bucketName, String prefix) {
+ Iterable<Result<Item>> listObjects = minioClient.listObjects(ListObjectsArgs.builder()
+ .bucket(bucketName)
+ .prefix(prefix)
+ .recursive(true)
+ .build());
+ return listObjects;
}
}
\ No newline at end of file
--
Gitblit v1.9.3