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 9ddc1e8..b4670c7 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 @@ -59,6 +59,7 @@ import cn.axzo.oss.service.api.FileService; import cn.axzo.oss.service.metafile.WithFileFactory; import cn.axzo.oss.service.metafile.WithFileService; import cn.azxo.framework.common.model.CommonResponse; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -886,7 +887,33 @@ public class FileServiceImpl implements FileService { List fileBusinessSceneList = fileBusinessSceneManager.queryByBucketNoAndScene(fileList.stream().map(File::getAppChannelBucketNo).collect(Collectors.toSet()), bizScene); Map bizSceneExpireMap = fileBusinessSceneList.stream().collect(Collectors.toMap(FileBusinessScene::getAppChannelBucketNo, FileBusinessScene::getDownloadExpiration, (x, y) -> y)); //构建返回集合 - return this.buildFileKeyRespByFile(fileList, bucketTypeMap, bizSceneExpireMap, style, hasFileName, expiration); + List responseList = this.buildFileKeyRespByFile(fileList, bucketTypeMap, bizSceneExpireMap, style, hasFileName, expiration); + //获取不在dbFile中,但是在默认axzo-obs-private中的key + responseList.addAll(fetchNoFileAndObsPrivate(fileKeys, fileList)); + return responseList; + } + + /** + * 获取不在dbFile中,但是在默认axzo-obs-private中的key + */ + private List fetchNoFileAndObsPrivate(List fileKeys, List fileList) { + if (CollectionUtil.isEmpty(fileKeys)) { + return Lists.newArrayList(); + } + List fileDbList = Lists.newArrayList(); + if (CollectionUtil.isNotEmpty(fileList)) { + fileDbList = fileList.stream().map(File::getFileUuid).collect(Collectors.toList()); + } + List subtractToList = CollUtil.subtractToList(fileKeys, fileDbList); + + List collect = Lists.newArrayList(); + if (CollectionUtil.isNotEmpty(subtractToList)) { + collect = subtractToList.stream().map(item -> this.buildSignUrlDownloadResponse(BucketTypeEnum.PRIVATE_BUCKET.getCode(), + "axzo-obs-private", item, ChannelTypeEnum.OBS.getChannelCode() + , item, null)) + .collect(Collectors.toList()); + } + return collect; } /**