diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/OssBuilder.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/OssBuilder.java index 27a7b614..f4d99f1d 100644 --- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/OssBuilder.java +++ b/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()) { diff --git a/blade-ops/blade-resource/src/main/java/org/springblade/resource/config/OssConfiguration.java b/blade-ops/blade-resource/src/main/java/org/springblade/resource/config/OssConfiguration.java index 54439b4e..65ff40ee 100644 --- a/blade-ops/blade-resource/src/main/java/org/springblade/resource/config/OssConfiguration.java +++ b/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); } }