| | |
| | | */ |
| | | package cn.gistack.resource.builder.oss; |
| | | |
| | | import cn.gistack.resource.rule.MyOssRule; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import org.springblade.core.cache.utils.CacheUtil; |
| | |
| | | |
| | | /** |
| | | * 获取template |
| | | * @param prefixPath 上传文件前缀路径 |
| | | * @return OssTemplate |
| | | */ |
| | | public OssTemplate templateByPrefixPath(String prefixPath) { |
| | | return templateByPath(StringPool.EMPTY,prefixPath); |
| | | } |
| | | |
| | | /** |
| | | * 获取template |
| | | * |
| | | * @param code 资源编号 |
| | | * @return OssTemplate |
| | |
| | | return template; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 自定义路径前缀获取template |
| | | * |
| | | * @param code 资源编号 |
| | | * @param prefixPath 上传文件前缀路径 |
| | | * @return OssTemplate |
| | | */ |
| | | public OssTemplate templateByPath(String code,String prefixPath) { |
| | | String tenantId = AuthUtil.getTenantId(); |
| | | Oss oss = getOss(tenantId, code); |
| | | Oss ossCached = ossPool.get(tenantId); |
| | | OssTemplate template = templatePool.get(tenantId); |
| | | // 若为空或者不一致,则重新加载 |
| | | if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) { |
| | | synchronized (OssBuilder.class) { |
| | | template = templatePool.get(tenantId); |
| | | 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()) && ossProperties.getTenantMode()) { |
| | | ossRule = new MyOssRule(Boolean.TRUE,prefixPath); |
| | | } else { |
| | | ossRule = new MyOssRule(Boolean.FALSE,prefixPath); |
| | | } |
| | | if (oss.getCategory() == OssEnum.MINIO.getCategory()) { |
| | | template = MinioOssBuilder.template(oss, ossRule); |
| | | } else if (oss.getCategory() == OssEnum.QINIU.getCategory()) { |
| | | template = QiniuOssBuilder.template(oss, ossRule); |
| | | } else if (oss.getCategory() == OssEnum.ALI.getCategory()) { |
| | | template = AliOssBuilder.template(oss, ossRule); |
| | | } else if (oss.getCategory() == OssEnum.TENCENT.getCategory()) { |
| | | template = TencentOssBuilder.template(oss, ossRule); |
| | | } |
| | | templatePool.put(tenantId, template); |
| | | ossPool.put(tenantId, oss); |
| | | } |
| | | } |
| | | } |
| | | return template; |
| | | } |
| | | |
| | | /** |
| | | * 获取对象存储实体 |
| | | * |