Browse Source

【minio】修改,增加外部域名和内部域名,内部域名可以用来内部访问,更快,更稳定;外部域名用于给用户访问

dev
wangxianzhang 3 years ago
parent
commit
1c15339269
  1. 10
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/CloudStorageConfig.java
  2. 11
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/cloud/MinioStorageService.java

10
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 @Data
public static class MinioStorageConfigProps { public static class MinioStorageConfigProps {
private String minioDomain; /**
* 外部访问域名用于用户直接访问minio服务
*/
private String minioExternalDomain;
/**
* 内部访问域名用于服务集群内部使用
*/
private String minioInternalDomain;
private String minioEndPoint; private String minioEndPoint;
private String minioAccessKey; private String minioAccessKey;
private String minioSecretKey; private String minioSecretKey;
private String minioPrefix; private String minioPrefix;
private String minioBucketName; private String minioBucketName;
} }
} }

11
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); CloudStorageConfig.MinioStorageConfigProps props = config.getMinio().getConfigByPrivacy(null);
/**
* minio和服务在同一个局域网则可以使用内网域名上传速度更快更稳定
*/
minioClient = MinioClient.builder() minioClient = MinioClient.builder()
.endpoint(props.getMinioDomain()) // 保证和nginx的proxy_set_header Host 一致 .endpoint(props.getMinioInternalDomain()) // 保证和nginx的proxy_set_header Host 一致
.credentials(props.getMinioAccessKey(), props.getMinioSecretKey()) .credentials(props.getMinioAccessKey(), props.getMinioSecretKey())
.build(); .build();
} }
@Override @Override
public String getOssDomain(String privacy) { public String getOssDomain(String privacy) {
return this.config.getMinio().getConfigByPrivacy(privacy).getMinioDomain(); return this.config.getMinio().getConfigByPrivacy(privacy).getMinioExternalDomain();
} }
@Override @Override
@ -74,7 +77,9 @@ public class MinioStorageService extends AbstractCloudStorageService {
.build()); .build());
log.debug("minio上传文件成功。bucket:{}, object:{}, privacyType:{}", resp.bucket(), resp.object(), privacyType); 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) { } catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e); String errorMsg = ExceptionUtils.getErrorStackTrace(e);
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg); throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg);

Loading…
Cancel
Save