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
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;
}
}

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);
/**
* 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);

Loading…
Cancel
Save