init
This commit is contained in:
parent
306eb37b5b
commit
decaec2d5a
@ -32,4 +32,4 @@ minio:
|
|||||||
url: http://localhost:9000
|
url: http://localhost:9000
|
||||||
accessKey:
|
accessKey:
|
||||||
secretKey:
|
secretKey:
|
||||||
defaultBuket: ruoyi
|
defaultBuket:
|
||||||
|
@ -366,6 +366,9 @@ public class FileUtils {
|
|||||||
|
|
||||||
public static final String getRelativePath(String filePath) {
|
public static final String getRelativePath(String filePath) {
|
||||||
Path absolute = Paths.get(filePath);
|
Path absolute = Paths.get(filePath);
|
||||||
|
if (!absolute.isAbsolute()){
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
Path root = absolute.getRoot();
|
Path root = absolute.getRoot();
|
||||||
Path normalize = absolute.normalize();
|
Path normalize = absolute.normalize();
|
||||||
return normalize.subpath(root.getNameCount(), normalize.getNameCount()).toString().replace("\\", "/");
|
return normalize.subpath(root.getNameCount(), normalize.getNameCount()).toString().replace("\\", "/");
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
package com.ruoyi.middleware.minio.config;
|
package com.ruoyi.middleware.minio.config;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
import com.ruoyi.common.utils.file.FileOperateUtils;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.common.utils.file.FileUtils;
|
||||||
import io.minio.MinioClient;
|
import io.minio.*;
|
||||||
import io.minio.PutObjectArgs;
|
|
||||||
import io.minio.RemoveObjectArgs;
|
|
||||||
import io.minio.RemoveObjectsArgs;
|
|
||||||
import io.minio.errors.*;
|
import io.minio.errors.*;
|
||||||
import io.minio.messages.Bucket;
|
import io.minio.messages.Bucket;
|
||||||
|
import io.minio.messages.Item;
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import org.apache.http.impl.io.EmptyInputStream;
|
import org.apache.http.impl.io.EmptyInputStream;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.InvalidKeyException;
|
import java.security.InvalidKeyException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
@ -43,7 +44,7 @@ public class MinioConfig {
|
|||||||
public void init() {
|
public void init() {
|
||||||
List<MinioClientConfig.MinioClientEntity> collect = minioClientConfig.getSlave().stream().map(item -> {
|
List<MinioClientConfig.MinioClientEntity> collect = minioClientConfig.getSlave().stream().map(item -> {
|
||||||
setClient(item);
|
setClient(item);
|
||||||
isBuketExist(item);
|
isBuketExistOnAnonymous(item);
|
||||||
return item;
|
return item;
|
||||||
}).toList();
|
}).toList();
|
||||||
collect.forEach(item -> {
|
collect.forEach(item -> {
|
||||||
@ -52,7 +53,7 @@ public class MinioConfig {
|
|||||||
});
|
});
|
||||||
MinioClientConfig.MinioClientEntity master = minioClientConfig.getMaster();
|
MinioClientConfig.MinioClientEntity master = minioClientConfig.getMaster();
|
||||||
setClient(master);
|
setClient(master);
|
||||||
isBuketExist(master);
|
isBuketExistOnAnonymous(master);
|
||||||
masterClient = master;
|
masterClient = master;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,25 +78,37 @@ public class MinioConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void setClient(MinioClientConfig.MinioClientEntity entity){
|
private static void setClient(MinioClientConfig.MinioClientEntity entity){
|
||||||
try {
|
if (StringUtils.isEmpty(entity.getAccessKey())){
|
||||||
|
MinioClient build = MinioClient.builder().endpoint(entity.getUrl()).build();
|
||||||
|
entity.setClient(build);
|
||||||
|
}else {
|
||||||
MinioClient build = MinioClient.builder().endpoint(entity.getUrl())
|
MinioClient build = MinioClient.builder().endpoint(entity.getUrl())
|
||||||
.credentials(entity.getAccessKey(), entity.getSecretKey()).build();
|
.credentials(entity.getAccessKey(), entity.getSecretKey()).build();
|
||||||
build.listBuckets();
|
|
||||||
entity.setClient(build);
|
entity.setClient(build);
|
||||||
} catch (Exception exception) {
|
BucketExistsArgs bucketExistArgs = BucketExistsArgs.builder().bucket(entity.getDefaultBuket()).build();
|
||||||
MinioClient build = MinioClient.builder().endpoint(entity.getUrl()).build();
|
try {
|
||||||
|
boolean b = entity.getClient().bucketExists(bucketExistArgs);
|
||||||
|
if (!b){
|
||||||
|
throw new RuntimeException("defaultBucket does not exist");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
}
|
||||||
entity.setClient(build);
|
entity.setClient(build);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void isBuketExist(MinioClientConfig.MinioClientEntity entity) {
|
|
||||||
|
private static void isBuketExistOnAnonymous(MinioClientConfig.MinioClientEntity entity) {
|
||||||
try {
|
try {
|
||||||
String defaultBuket = entity.getDefaultBuket();
|
String defaultBuket = entity.getDefaultBuket();
|
||||||
if(StringUtils.isEmpty(defaultBuket)){
|
if(StringUtils.isEmpty(defaultBuket)){
|
||||||
throw new RuntimeException("defaultBuket without a default value ");
|
throw new RuntimeException("defaultBuket without a default value ");
|
||||||
}
|
}
|
||||||
RemoveObjectArgs remove = RemoveObjectArgs.builder().bucket(entity.getDefaultBuket()).object("test").build();
|
PutObjectArgs putObjectArgs= PutObjectArgs.builder().object(FileUtils.getRelativePath(RuoYiConfig.getProfile())+ "/")
|
||||||
entity.getClient().removeObject(remove);
|
.stream(EmptyInputStream.nullInputStream(),0,-1).bucket(entity.getDefaultBuket()).build();
|
||||||
|
entity.getClient().putObject(putObjectArgs);
|
||||||
|
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user