From 043a1d97a72781381ea8060061277413729d6ead Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 30 Aug 2023 16:31:02 +0800
Subject: [PATCH] 新增根据前缀路径上传文件接口
---
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
index b88258d..03c99e3 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
@@ -16,6 +16,7 @@
*/
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;
@@ -78,6 +79,15 @@
/**
* 获取template
+ * @param prefixPath 上传文件前缀路径
+ * @return OssTemplate
+ */
+ public OssTemplate templateByPrefixPath(String prefixPath) {
+ return templateByPath(StringPool.EMPTY,prefixPath);
+ }
+
+ /**
+ * 获取template
*
* @param code 资源编号
* @return OssTemplate
@@ -116,6 +126,48 @@
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;
+ }
+
/**
* 获取对象存储实体
*
--
Gitblit v1.9.3