This commit is contained in:
XSWL1018 2024-06-18 23:18:00 +08:00
parent 586d8048e7
commit 4a5ab6b0d9
3 changed files with 52 additions and 17 deletions

View File

@ -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:
# 从数据源开关/默认关闭

View File

@ -31,5 +31,5 @@ minio:
master:
url: http://localhost:9000
accessKey: root
secretKey: 123456
defaultBuket: ruoyi
secretKey: wky20031018
defaultBuket: bim-model

View File

@ -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<MinioClientConfig.MinioClientEntity> 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<Bucket> 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);
}
}
}