diff --git a/oss-common/src/main/java/cn/axzo/oss/common/utils/UrlUtil.java b/oss-common/src/main/java/cn/axzo/oss/common/utils/UrlUtil.java
new file mode 100644
index 0000000..319e9cd
--- /dev/null
+++ b/oss-common/src/main/java/cn/axzo/oss/common/utils/UrlUtil.java
@@ -0,0 +1,37 @@
+package cn.axzo.oss.common.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @Author xudawei
+ * @Date 2024/4/8
+ * @Description url处理
+ **/
+public class UrlUtil {
+
+
+ public static String HTTP = "http:";
+ public static String HTTPS = "https:";
+
+ /**
+ * http的url替换成https
+ */
+ public static String httpToHttps(String str) {
+ if (StringUtils.isBlank(str)) {
+ return str;
+ }
+ if (str.startsWith(HTTP)) {
+ return HTTPS + str.substring(str.indexOf(HTTP) + HTTP.length());
+ }
+ return str;
+ }
+
+
+ public static void main(String[] args) {
+ String str = "http://axzo-test.oss-cn-chengdu.aliyuncs.com/reportCenter/reportCenter_test";
+ String str1 = "https://baidu.com";
+ System.out.println(httpToHttps(str));
+ System.out.println(httpToHttps(str1));
+ }
+
+}
diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/AppChannelBucketDao.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/AppChannelBucketDao.java
index f6d864b..6878bc1 100644
--- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/AppChannelBucketDao.java
+++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/AppChannelBucketDao.java
@@ -3,6 +3,7 @@ package cn.axzo.oss.dal.repository;
import cn.axzo.oss.dal.entity.AppChannelBucket;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
+import java.util.Set;
/**
*
@@ -32,5 +33,5 @@ public interface AppChannelBucketDao extends IService {
/**
* 通过appChannelBucketNo集合,获取文件渠道桶信息
*/
- List getByAppChannelBucketNos(List appChannelBucketNos);
+ List getByAppChannelBucketNos(Set appChannelBucketNos);
}
diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileBusinessSceneDao.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileBusinessSceneDao.java
index 92d478a..293be8e 100644
--- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileBusinessSceneDao.java
+++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/FileBusinessSceneDao.java
@@ -4,6 +4,7 @@ import cn.axzo.oss.dal.entity.FileBusinessScene;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
+import java.util.Set;
/**
*
@@ -28,5 +29,5 @@ public interface FileBusinessSceneDao extends IService {
/**
* 根据bucketNo与场景,获取批量FileBusinessScene对象
*/
- List queryByBucketNoAndScene(List bucketNoList, String bizScen);
+ List queryByBucketNoAndScene(Set bucketNoList, String bizScen);
}
diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/AppChannelBucketDaoImpl.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/AppChannelBucketDaoImpl.java
index 7a57f68..36fadf0 100644
--- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/AppChannelBucketDaoImpl.java
+++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/AppChannelBucketDaoImpl.java
@@ -8,6 +8,7 @@ import cn.axzo.oss.dal.repository.AppChannelBucketDao;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
@@ -57,7 +58,7 @@ public class AppChannelBucketDaoImpl extends
* 通过appChannelBucketNo集合,获取文件渠道桶信息
*/
@Override
- public List getByAppChannelBucketNos(List appChannelBucketNos) {
+ public List getByAppChannelBucketNos(Set appChannelBucketNos) {
if (CollectionUtils.isEmpty(appChannelBucketNos)) {
return Lists.newArrayList();
}
diff --git a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileBusinessSceneDaoImpl.java b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileBusinessSceneDaoImpl.java
index 659e406..92b5279 100644
--- a/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileBusinessSceneDaoImpl.java
+++ b/oss-dal/src/main/java/cn/axzo/oss/dal/repository/impl/FileBusinessSceneDaoImpl.java
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Set;
/**
*
@@ -41,12 +42,12 @@ public class FileBusinessSceneDaoImpl extends
* 根据bucketNo与场景,获取批量FileBusinessScene对象
*/
@Override
- public List queryByBucketNoAndScene(List bucketNoList, String bizScene) {
- if (CollectionUtils.isEmpty(bucketNoList) || StringUtils.isBlank(bizScene)) {
+ public List queryByBucketNoAndScene(Set bucketNoList, String bizScene) {
+ if (CollectionUtils.isEmpty(bucketNoList)) {
return Lists.newArrayList();
}
return lambdaQuery().in(FileBusinessScene::getAppChannelBucketNo, bucketNoList)
- .eq(FileBusinessScene::getBusinessScene,bizScene)
+ .eq(StringUtils.isNotBlank(bizScene), FileBusinessScene::getBusinessScene, StringUtils.isNotBlank(bizScene) ? bizScene : StringUtils.EMPTY)
.eq(FileBusinessScene::getIsDelete, IsDeleteEnum.NO.getCode()).list();
}
}
diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/AppChannelBucketManager.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/AppChannelBucketManager.java
index 559e471..fa90331 100644
--- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/AppChannelBucketManager.java
+++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/AppChannelBucketManager.java
@@ -2,6 +2,7 @@ package cn.axzo.oss.manager.api;
import cn.axzo.oss.dal.entity.AppChannelBucket;
import java.util.List;
+import java.util.Set;
/**
* @author: zhangran
@@ -27,5 +28,5 @@ public interface AppChannelBucketManager {
/**
* 通过appChannelBucketNo集合,获取文件渠道桶信息
*/
- List getByAppChannelBucketNos(List appChannelBucketNos);
+ List getByAppChannelBucketNos(Set appChannelBucketNos);
}
diff --git a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/FileBusinessSceneManager.java b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/FileBusinessSceneManager.java
index 2ab776e..4eb53ff 100644
--- a/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/FileBusinessSceneManager.java
+++ b/oss-manager-api/src/main/java/cn/axzo/oss/manager/api/FileBusinessSceneManager.java
@@ -3,6 +3,7 @@ package cn.axzo.oss.manager.api;
import cn.axzo.oss.dal.entity.FileBusinessScene;
import java.util.List;
+import java.util.Set;
/**
* @author: zhangran
@@ -23,5 +24,5 @@ public interface FileBusinessSceneManager {
/**
* 指定appcode文件业务场景
*/
- List queryByBucketNoAndScene(List bucketNoList, String bizScene);
+ List queryByBucketNoAndScene(Set bucketNoList, String bizScene);
}
diff --git a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/AppChannelBucketManagerImpl.java b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/AppChannelBucketManagerImpl.java
index 0e385ff..24b5fea 100644
--- a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/AppChannelBucketManagerImpl.java
+++ b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/AppChannelBucketManagerImpl.java
@@ -9,6 +9,7 @@ import cn.axzo.oss.dal.repository.AppChannelBucketDao;
import cn.axzo.oss.manager.api.AppChannelBucketManager;
import cn.axzo.oss.manager.api.FileChannelManager;
import java.util.List;
+import java.util.Set;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
@@ -66,7 +67,7 @@ public class AppChannelBucketManagerImpl implements AppChannelBucketManager {
* 通过appChannelBucketNo集合,获取文件渠道桶信息
*/
@Override
- public List getByAppChannelBucketNos(List appChannelBucketNos) {
+ public List getByAppChannelBucketNos(Set appChannelBucketNos) {
if (CollectionUtils.isEmpty(appChannelBucketNos)) {
return Lists.newArrayList();
}
diff --git a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileBusinessSceneManagerImpl.java b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileBusinessSceneManagerImpl.java
index 5a110b3..9746d2c 100644
--- a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileBusinessSceneManagerImpl.java
+++ b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileBusinessSceneManagerImpl.java
@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Set;
/**
* @author: zhangran
@@ -45,8 +46,8 @@ public class FileBusinessSceneManagerImpl implements FileBusinessSceneManager {
* 根据bucketNo与场景,获取批量FileBusinessScene对象
*/
@Override
- public List queryByBucketNoAndScene(List bucketNoList, String bizScene) {
- if (CollectionUtils.isEmpty(bucketNoList) || StringUtils.isBlank(bizScene)) {
+ public List queryByBucketNoAndScene(Set bucketNoList, String bizScene) {
+ if (CollectionUtils.isEmpty(bucketNoList)) {
return Lists.newArrayList();
}
return fileBusinessSceneDao
diff --git a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java
index b04cfcb..7cacd2b 100644
--- a/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java
+++ b/oss-manager/src/main/java/cn/axzo/oss/manager/impl/FileManagerImpl.java
@@ -7,6 +7,7 @@ import cn.axzo.oss.common.enums.FileUploadTypeEnum;
import cn.axzo.oss.common.enums.StorageUnitEnum;
import cn.axzo.oss.common.exception.BizException;
import cn.axzo.oss.common.utils.BeanConvertUtil;
+import cn.axzo.oss.common.utils.UrlUtil;
import cn.axzo.oss.integration.s3.AliOssService;
import cn.axzo.oss.integration.s3.HuaWeiCloudService;
import cn.axzo.oss.manager.api.FileManager;
@@ -171,17 +172,17 @@ public class FileManagerImpl implements FileManager {
TemporarySignatureResponse response = huaWeiCloudService.uploadSignUrl(bucketName, key, expireSecond, contentType);
return SignUrlUploadVo.builder()
- .signUrl(response.getSignedUrl())
+ .signUrl(UrlUtil.httpToHttps(response.getSignedUrl()))
.host(response.getActualSignedRequestHeaders().get(HUAWEI_CLOUD_SIGNURL_UPLOAD_HOST_KEY))
.contentType(response.getActualSignedRequestHeaders().get(HUAWEI_CLOUD_SIGNURL_UPLOAD_CONTENT_TYPE_KEY))
.channelCode(channelCode)
- .downloadSignUrl(this.downloadHuaweiSignUrl(bucketName, key, expireSecond, bucketType, fileName))
+ .downloadSignUrl(UrlUtil.httpToHttps(this.downloadHuaweiSignUrl(bucketName, key, expireSecond, bucketType, fileName)))
.build();
case OSS:// 阿里云
return SignUrlUploadVo.builder()
- .signUrl(aliOssService.uploadSignUrl(bucketName, key, fileName,expireSecond))
+ .signUrl(UrlUtil.httpToHttps(aliOssService.uploadSignUrl(bucketName, key, fileName,expireSecond)))
.channelCode(channelCode)
- .downloadSignUrl(this.downloadAliyunSignUrl(bucketName, key, expireSecond, bucketType, fileName))
+ .downloadSignUrl(UrlUtil.httpToHttps(this.downloadAliyunSignUrl(bucketName, key, expireSecond, bucketType, fileName)))
.build();
default:
BizException.error(CodeEnum.CHANNEL_TYPE_NOT_EXIST);
diff --git a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java
index d164560..850b12a 100644
--- a/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java
+++ b/oss-service/src/main/java/cn/axzo/oss/service/impl/FileServiceImpl.java
@@ -15,6 +15,7 @@ import cn.axzo.oss.common.enums.FileStatusEnum;
import cn.axzo.oss.common.enums.FileUploadTypeEnum;
import cn.axzo.oss.common.exception.BizException;
import cn.axzo.oss.common.utils.JsonUtil;
+import cn.axzo.oss.common.utils.UrlUtil;
import cn.axzo.oss.common.utils.Utility;
import cn.axzo.oss.dal.entity.AppChannelBucket;
import cn.axzo.oss.dal.entity.File;
@@ -464,7 +465,7 @@ public class FileServiceImpl implements FileService {
private Map buildBucketTypeMap(List fileList) {
Map bucketTypeMap = Maps.newHashMap();
if (!CollectionUtils.isEmpty(fileList)) {
- List appChannelBucketList = this.appChannelBucketManager.getByAppChannelBucketNos(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toList()));
+ List appChannelBucketList = this.appChannelBucketManager.getByAppChannelBucketNos(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toSet()));
if (!CollectionUtils.isEmpty(appChannelBucketList)) {
bucketTypeMap = appChannelBucketList.stream().collect(Collectors.toMap(AppChannelBucket::getAppChannelBucketNo, AppChannelBucket::getBucketType));
}
@@ -837,17 +838,18 @@ public class FileServiceImpl implements FileService {
}
//通过appChannelBucketNo集合,获取文件渠道桶信息
- List appChannelBucketList = appChannelBucketManager.getByAppChannelBucketNos(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toList()));
+ List appChannelBucketList = appChannelBucketManager.getByAppChannelBucketNos(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toSet()));
Map bucketTypeMap = appChannelBucketList.stream().collect(Collectors.toMap(AppChannelBucket::getAppChannelBucketNo, AppChannelBucket::getBucketType, (x, y) -> y));
- List fileBusinessSceneList = fileBusinessSceneManager.queryByBucketNoAndScene(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toList()), dto.getBizScene());
+ List fileBusinessSceneList = fileBusinessSceneManager.queryByBucketNoAndScene(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toSet()), dto.getBizScene());
Map bizSceneExpireMap = fileBusinessSceneList.stream().collect(Collectors.toMap(FileBusinessScene::getAppChannelBucketNo, FileBusinessScene::getDownloadExpiration, (x, y) -> y));
List responseList = fileList.stream().map(item -> {
Long expire = bizSceneExpireMap.get(item.getAppChannelBucketNo());
// bucket下的key
String tgtFileKey = Utility.generateFileKey(item.getDirectory(), item.getFileUuid(), item.getFileFormat());
- switch (BucketTypeEnum.getByCode(bucketTypeMap.get(item.getAppChannelBucketNo()))) {
+ String bucketType = StringUtils.isNotBlank(bucketTypeMap.get(item.getAppChannelBucketNo())) ? bucketTypeMap.get(item.getAppChannelBucketNo()) : BucketTypeEnum.PRIVATE_BUCKET.getCode();
+ switch (BucketTypeEnum.getByCode(bucketType)) {
case PUBLIC_BUCKET:
String url = this.fileManager.fetchDownloadUrl(item.getBucketName(), tgtFileKey, item.getChannelCode());
return SignUrlDownloadResponse.builder()
@@ -857,7 +859,7 @@ public class FileServiceImpl implements FileService {
case PRIVATE_BUCKET:
String signUrl = this.fileManager.signUrlDownload(item.getBucketName(), tgtFileKey, Objects.nonNull(expire) ? expire : SIGN_URL_DOWNLOAD_EXPIRE_SECOND , item.getChannelCode(), item.getFileName());
return SignUrlDownloadResponse.builder()
- .signUrl(signUrl)
+ .signUrl(UrlUtil.httpToHttps(signUrl))
.fileKey(item.getFileUuid())
.build();
default:
@@ -945,12 +947,12 @@ public class FileServiceImpl implements FileService {
this.saveOssFile(fileUploadConfig, dto.getFileName(), fileFormat, uuid,
signUrlUpload.getDownloadSignUrl(), Utility.getMd5(signUrlUpload.getDownloadSignUrl()), expiration);
return SignUrlUploadResponse.builder()
- .signUrl(signUrlUpload.getSignUrl())
+ .signUrl(UrlUtil.httpToHttps(signUrlUpload.getSignUrl()))
.fileKey(uuid)
.contentType(signUrlUpload.getContentType())
.host(signUrlUpload.getHost())
.channelCode(signUrlUpload.getChannelCode())
- .downloadSignUrl(signUrlUpload.getDownloadSignUrl())
+ .downloadSignUrl(UrlUtil.httpToHttps(signUrlUpload.getDownloadSignUrl()))
.build();
}