diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java index 384c77fa42..6b44c47d66 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java @@ -156,12 +156,18 @@ public class CloudStorageConfig implements Serializable { */ @Data public static class MinioStorageConfigProps { - private String minioDomain; + /** + * 外部访问域名,用于用户直接访问minio服务 + */ + private String minioExternalDomain; + /** + * 内部访问域名,用于服务集群内部使用 + */ + private String minioInternalDomain; private String minioEndPoint; private String minioAccessKey; private String minioSecretKey; private String minioPrefix; private String minioBucketName; } - } diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java index 5d1cd1fad6..32bb5d51ee 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java @@ -28,15 +28,18 @@ public class MinioStorageService extends AbstractCloudStorageService { CloudStorageConfig.MinioStorageConfigProps props = config.getMinio().getConfigByPrivacy(null); + /** + * minio和服务在同一个局域网,则可以使用内网域名上传,速度更快更稳定 + */ minioClient = MinioClient.builder() - .endpoint(props.getMinioDomain()) // 保证和nginx的proxy_set_header Host 一致 + .endpoint(props.getMinioInternalDomain()) // 保证和nginx的proxy_set_header Host 一致 .credentials(props.getMinioAccessKey(), props.getMinioSecretKey()) .build(); } @Override public String getOssDomain(String privacy) { - return this.config.getMinio().getConfigByPrivacy(privacy).getMinioDomain(); + return this.config.getMinio().getConfigByPrivacy(privacy).getMinioExternalDomain(); } @Override @@ -74,7 +77,9 @@ public class MinioStorageService extends AbstractCloudStorageService { .build()); log.debug("minio上传文件成功。bucket:{}, object:{}, privacyType:{}", resp.bucket(), resp.object(), privacyType); - return props.getMinioDomain() + "/" + Paths.get(resp.bucket()).resolve(resp.object()).toString(); + + // 返回值要存储到数据库,供用户访问,因此使用外网域名 + return props.getMinioExternalDomain() + "/" + Paths.get(resp.bucket()).resolve(resp.object()).toString(); } catch (Exception e) { String errorMsg = ExceptionUtils.getErrorStackTrace(e); throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg);