Browse Source

优化oss租户模式逻辑

test
smallchill 6 years ago
parent
commit
c08411a40b
  1. 16
      blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/OssBuilder.java
  2. 5
      blade-ops/blade-resource/src/main/java/org/springblade/resource/config/OssConfiguration.java

16
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/OssBuilder.java

@ -22,6 +22,7 @@ import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.enums.OssEnum;
import org.springblade.core.oss.enums.OssStatusEnum;
import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.BladeOssRule;
import org.springblade.core.oss.rule.OssRule;
import org.springblade.core.secure.utils.SecureUtil;
import org.springblade.core.tool.utils.Func;
@ -44,12 +45,10 @@ public class OssBuilder {
private final OssProperties ossProperties;
private final OssMapper ossMapper;
private final OssRule ossRule;
public OssBuilder(OssProperties ossProperties, OssMapper ossMapper, OssRule ossRule) {
public OssBuilder(OssProperties ossProperties, OssMapper ossMapper) {
this.ossProperties = ossProperties;
this.ossMapper = ossMapper;
this.ossRule = ossRule;
}
/**
@ -73,10 +72,17 @@ public class OssBuilder {
Oss ossCached = ossPool.get(tenantCode);
OssTemplate template = templatePool.get(tenantCode);
// 若为空或者不一致,则重新加载
if (Func.hasEmpty(template, ossCached) || oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
synchronized (OssBuilder.class) {
template = templatePool.get(tenantCode);
if (Func.hasEmpty(template, ossCached) || oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
OssRule ossRule;
// 若采用默认设置则开启多租户模式, 若是用户自定义oss则不开启
if (oss.getEndpoint().equals(ossProperties.getEndpoint()) && oss.getAccessKey().equals(ossProperties.getAccessKey())) {
ossRule = new BladeOssRule(Boolean.TRUE);
} else {
ossRule = new BladeOssRule(Boolean.FALSE);
}
if (oss.getCategory() == OssEnum.MINIO.getCategory()) {
template = MinioBuilder.template(oss, ossRule);
} else if (oss.getCategory() == OssEnum.QINIU.getCategory()) {

5
blade-ops/blade-resource/src/main/java/org/springblade/resource/config/OssConfiguration.java

@ -18,7 +18,6 @@ package org.springblade.resource.config;
import lombok.AllArgsConstructor;
import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.OssRule;
import org.springblade.resource.builder.OssBuilder;
import org.springblade.resource.mapper.OssMapper;
import org.springframework.context.annotation.Bean;
@ -37,11 +36,9 @@ public class OssConfiguration {
private OssMapper ossMapper;
private OssRule ossRule;
@Bean
public OssBuilder ossBuilder() {
return new OssBuilder(ossProperties, ossMapper, ossRule);
return new OssBuilder(ossProperties, ossMapper);
}
}

Loading…
Cancel
Save