From 4a5ab6b0d9a9bd50407580d93a8e6c9da9cc7ec5 Mon Sep 17 00:00:00 2001 From: XSWL1018 <824576966@qq.com> Date: Tue, 18 Jun 2024 23:18:00 +0800 Subject: [PATCH] init --- .../src/main/resources/application-druid.yml | 2 +- .../main/resources/application-middleware.yml | 4 +- .../middleware/minio/config/MinioConfig.java | 63 ++++++++++++++----- 3 files changed, 52 insertions(+), 17 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 56ce492..758c7d6 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -8,7 +8,7 @@ spring: master: url: jdbc:mysql://127.0.0.1/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: 123456 + password: WKY20031018 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/application-middleware.yml b/ruoyi-admin/src/main/resources/application-middleware.yml index 0b6534d..f0122b7 100644 --- a/ruoyi-admin/src/main/resources/application-middleware.yml +++ b/ruoyi-admin/src/main/resources/application-middleware.yml @@ -31,5 +31,5 @@ minio: master: url: http://localhost:9000 accessKey: root - secretKey: 123456 - defaultBuket: ruoyi + secretKey: wky20031018 + defaultBuket: bim-model diff --git a/ruoyi-middleware/ruoyi-middleware-minio/src/main/java/com/ruoyi/middleware/minio/config/MinioConfig.java b/ruoyi-middleware/ruoyi-middleware-minio/src/main/java/com/ruoyi/middleware/minio/config/MinioConfig.java index af55924..012999e 100644 --- a/ruoyi-middleware/ruoyi-middleware-minio/src/main/java/com/ruoyi/middleware/minio/config/MinioConfig.java +++ b/ruoyi-middleware/ruoyi-middleware-minio/src/main/java/com/ruoyi/middleware/minio/config/MinioConfig.java @@ -1,11 +1,17 @@ package com.ruoyi.middleware.minio.config; +import com.ruoyi.common.utils.StringUtils; import io.minio.MinioClient; +import io.minio.errors.*; +import io.minio.messages.Bucket; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Configuration; +import java.io.IOException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -30,27 +36,17 @@ public class MinioConfig { @PostConstruct public void init() { List collect = minioClientConfig.getSlave().stream().map(item -> { - try { - item.setClient(MinioClient.builder().endpoint(item.getUrl()) - .credentials(item.getAccessKey(), item.getSecretKey()).build()); - } catch (Exception exception) { - item.setClient(MinioClient.builder().endpoint(item.getUrl()).build()); - } - + setClient(item); + isBuketExist(item); return item; }).toList(); collect.forEach(item -> { slaveClients.put(item.getName(), item); slaveClientsList.add(item); }); - MinioClientConfig.MinioClientEntity master = minioClientConfig.getMaster(); - try { - master.setClient(MinioClient.builder().endpoint(master.getUrl()) - .credentials(master.getAccessKey(), master.getSecretKey()).build()); - } catch (Exception exception) { - master.setClient(MinioClient.builder().endpoint(master.getUrl()).build()); - } + setClient(master); + isBuketExist(master); masterClient = master; } @@ -74,4 +70,43 @@ public class MinioConfig { return this.masterClient; } + private static void setClient(MinioClientConfig.MinioClientEntity entity){ + try { + MinioClient build = MinioClient.builder().endpoint(entity.getUrl()) + .credentials(entity.getAccessKey(), entity.getSecretKey()).build(); + build.listBuckets(); + entity.setClient(build); + } catch (Exception exception) { + MinioClient build = MinioClient.builder().endpoint(entity.getUrl()).build(); + try { + build.listBuckets(); + } catch (Exception e) { + throw new RuntimeException(e); + } + entity.setClient(build); + } + } + + private static void isBuketExist(MinioClientConfig.MinioClientEntity entity) { + try { + String defaultBuket = entity.getDefaultBuket(); + if(StringUtils.isEmpty(defaultBuket)){ + throw new RuntimeException("defaultBuket without a default value "); + } + List buckets = entity.getClient().listBuckets(); + if (buckets.isEmpty()) { + throw new RuntimeException("minioClient without any buket"); + } + for (Bucket bucket : buckets) { + if (bucket.name().equals(entity.getDefaultBuket())) { + return; + } + } + throw new RuntimeException("configured defaultBucket does not exist"); + }catch (Exception e){ + throw new RuntimeException(e); + } + + } + }