fix: 修复oss bean加载问题

This commit is contained in:
zlg
2024-05-15 13:04:54 +08:00
parent 2b45768b19
commit a522e11872
10 changed files with 121 additions and 76 deletions

View File

@@ -6,6 +6,7 @@ import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter;
import com.schisandra.oss.application.dto.SchisandraOssMinioDTO;
import com.schisandra.oss.application.oss.core.StandardOssClient;
import com.schisandra.oss.application.oss.core.minio.MinioOssClient;
import com.schisandra.oss.application.oss.core.minio.MinioOssConfiguration;
import com.schisandra.oss.application.oss.core.minio.model.MinioOssClientConfig;
import com.schisandra.oss.application.oss.core.minio.model.MinioOssConfig;
import com.schisandra.oss.common.entity.Result;
@@ -15,6 +16,7 @@ import io.minio.MinioClient;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -33,65 +35,19 @@ import java.util.concurrent.TimeUnit;
@RequestMapping("/oss/")
@Slf4j
public class SchisandraOssMinioController {
@Autowired
MinioOssClient minioOssClient;
@Resource
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
// @Resource
// private MinioOssClient minioOssClient;
@Resource
MinioOssConfiguration minioOssConfiguration;
@PostMapping("initMinio")
public StandardOssClient initMinio() {
SchisandraOssMinioBO minioBO = schisandraOssMinioDomainService.getMinioConfig(1L);
SchisandraOssMinioDTO minio = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(minioBO);
if (ObjectUtils.isEmpty(minio)) {
log.error("minio配置信息获取失败");
}
MinioOssConfig minioOssConfig = new MinioOssConfig();
minioOssConfig.setBasePath(minio.getBasePath());
minioOssConfig.setBucketName(minio.getBucketName());
minioOssConfig.setAccessKey(minio.getAccessKey());
minioOssConfig.setSecretKey(minio.getSecretKey());
minioOssConfig.setEndpoint(minio.getEndpoint());
minioOssConfig.init();
if (Boolean.parseBoolean(minio.getOpenAdvancedSetup())) {
MinioOssClientConfig minioOssClientConfig = new MinioOssClientConfig();
minioOssClientConfig.setWriteTimeout(minio.getWriteTimeout());
minioOssClientConfig.setConnectTimeout(minio.getConnectTimeout());
minioOssClientConfig.setReadTimeout(minio.getReadTimeout());
minioOssClientConfig.setFollowSslRedirects(Boolean.parseBoolean(minio.getFollowSslRedirects()));
minioOssClientConfig.setRetryOnConnectionFailure(Boolean.parseBoolean(minio.getRetryOnConnectionFailure()));
minioOssClientConfig.setPingInterval(minio.getPingInterval());
minioOssClientConfig.setFollowRedirects(Boolean.parseBoolean(minio.getFollowRedirects()));
minioOssClientConfig.setCallTimeout(minio.getCallTimeout());
minioOssConfig.setClientConfig(minioOssClientConfig);
}
return minioOssClient(minioOssConfig);
public void initMinio() {
minioOssConfiguration.minioOssClient();
}
public StandardOssClient minioOssClient(MinioOssConfig minioOssConfig) {
return new MinioOssClient(minioClient(minioOssConfig), minioOssConfig);
}
public MinioClient minioClient(MinioOssConfig minioOssConfig) {
MinioOssClientConfig clientConfig = minioOssConfig.getClientConfig();
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(clientConfig.getConnectTimeout(), TimeUnit.MILLISECONDS)
.writeTimeout(clientConfig.getWriteTimeout(), TimeUnit.MILLISECONDS)
.readTimeout(clientConfig.getReadTimeout(), TimeUnit.MILLISECONDS)
.callTimeout(clientConfig.getCallTimeout(), TimeUnit.MILLISECONDS)
.followRedirects(clientConfig.isFollowRedirects())
.followSslRedirects(clientConfig.isFollowSslRedirects())
.retryOnConnectionFailure(clientConfig.isRetryOnConnectionFailure())
.pingInterval(clientConfig.getPingInterval(), TimeUnit.MILLISECONDS)
.build();
return MinioClient.builder()
.endpoint(minioOssConfig.getEndpoint())
.credentials(minioOssConfig.getAccessKey(), minioOssConfig.getSecretKey())
.httpClient(okHttpClient)
.build();
}
/**
* 新增
@@ -155,7 +111,7 @@ public class SchisandraOssMinioController {
@RequestMapping("testMinio")
public void test() {
// System.out.println(minioOssClient.getBasePath());
System.out.println(minioOssClient.getBasePath());
}

View File

@@ -29,6 +29,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import okhttp3.Headers;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -50,6 +51,7 @@ import java.util.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Scope("Property")
@Component
public class MinioOssClient implements StandardOssClient {

View File

@@ -11,6 +11,9 @@ import io.minio.MinioClient;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.concurrent.TimeUnit;
@@ -21,13 +24,16 @@ import java.util.concurrent.TimeUnit;
* Created on 2021/11/24
*/
//@Configuration
@Component
@Slf4j
public class MinioOssConfiguration {
@Resource
MinioOssClient minioOssClient;
@Resource
private SchisandraOssMinioDomainService schisandraOssMinioDomainService;
// @Bean
public StandardOssClient minioOssClient() {
SchisandraOssMinioBO minioBO = schisandraOssMinioDomainService.getMinioConfig(1L);
SchisandraOssMinioDTO minio = SchisandraOssMinioDTOConverter.INSTANCE.convertBOToDTO(minioBO);
@@ -59,7 +65,10 @@ public class MinioOssConfiguration {
}
public StandardOssClient minioOssClient(MinioOssConfig minioOssConfig) {
return new MinioOssClient(minioClient(minioOssConfig), minioOssConfig);
minioOssClient.setMinioOssConfig(minioOssConfig);
minioOssClient.setMinioClient(minioClient(minioOssConfig));
return minioOssClient;
}
public MinioClient minioClient(MinioOssConfig minioOssConfig) {
@@ -82,3 +91,4 @@ public class MinioOssConfiguration {
}
}