|
@@ -4,6 +4,7 @@ import cn.reghao.jutil.jdk.security.RandomString;
|
|
|
import cn.reghao.oss.api.constant.ChannelAction;
|
|
import cn.reghao.oss.api.constant.ChannelAction;
|
|
|
import cn.reghao.oss.api.constant.ObjectScope;
|
|
import cn.reghao.oss.api.constant.ObjectScope;
|
|
|
import cn.reghao.oss.api.dto.*;
|
|
import cn.reghao.oss.api.dto.*;
|
|
|
|
|
+import cn.reghao.oss.api.dto.disk.DiskVolume;
|
|
|
import cn.reghao.oss.api.dto.media.AudioInfo;
|
|
import cn.reghao.oss.api.dto.media.AudioInfo;
|
|
|
import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
|
|
import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
|
|
|
import cn.reghao.oss.api.dto.media.ImageInfo;
|
|
import cn.reghao.oss.api.dto.media.ImageInfo;
|
|
@@ -11,6 +12,7 @@ import cn.reghao.oss.api.dto.media.VideoInfo;
|
|
|
import cn.reghao.oss.api.util.JwtUtil;
|
|
import cn.reghao.oss.api.util.JwtUtil;
|
|
|
import cn.reghao.oss.store.db.repository.ObjectRepository;
|
|
import cn.reghao.oss.store.db.repository.ObjectRepository;
|
|
|
import cn.reghao.oss.store.model.po.FileMeta;
|
|
import cn.reghao.oss.store.model.po.FileMeta;
|
|
|
|
|
+import cn.reghao.oss.store.service.DiskService;
|
|
|
import cn.reghao.oss.store.service.FileStoreService;
|
|
import cn.reghao.oss.store.service.FileStoreService;
|
|
|
import cn.reghao.oss.store.service.ObjectNameService;
|
|
import cn.reghao.oss.store.service.ObjectNameService;
|
|
|
import cn.reghao.oss.api.iface.StoreService;
|
|
import cn.reghao.oss.api.iface.StoreService;
|
|
@@ -21,7 +23,9 @@ import org.apache.dubbo.config.annotation.DubboService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.Collections;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -42,16 +46,19 @@ public class StoreServiceImpl implements StoreService {
|
|
|
private final SignService signService;
|
|
private final SignService signService;
|
|
|
private final MediaFileProcessor mediaFileProcessor;
|
|
private final MediaFileProcessor mediaFileProcessor;
|
|
|
private final Cache<String, String> cache;
|
|
private final Cache<String, String> cache;
|
|
|
|
|
+ private final DiskService diskService;
|
|
|
|
|
|
|
|
public StoreServiceImpl(ObjectNameService objectNameService, FileStoreService fileStoreService,
|
|
public StoreServiceImpl(ObjectNameService objectNameService, FileStoreService fileStoreService,
|
|
|
ObjectRepository objectRepository, SignService signService,
|
|
ObjectRepository objectRepository, SignService signService,
|
|
|
- MediaFileProcessor mediaFileProcessor, Cache<String, String> cache) {
|
|
|
|
|
|
|
+ MediaFileProcessor mediaFileProcessor, Cache<String, String> cache,
|
|
|
|
|
+ DiskService diskService) {
|
|
|
this.objectNameService = objectNameService;
|
|
this.objectNameService = objectNameService;
|
|
|
this.fileStoreService = fileStoreService;
|
|
this.fileStoreService = fileStoreService;
|
|
|
this.objectRepository = objectRepository;
|
|
this.objectRepository = objectRepository;
|
|
|
this.signService = signService;
|
|
this.signService = signService;
|
|
|
this.mediaFileProcessor = mediaFileProcessor;
|
|
this.mediaFileProcessor = mediaFileProcessor;
|
|
|
this.cache = cache;
|
|
this.cache = cache;
|
|
|
|
|
+ this.diskService = diskService;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -60,11 +67,19 @@ public class StoreServiceImpl implements StoreService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public StoreInfo getStoreInfo() {
|
|
|
|
|
- List<StoreDiskDto> diskDtos = fileStoreService.getStoreDisks().stream()
|
|
|
|
|
- .map(StoreDiskDto::new)
|
|
|
|
|
|
|
+ public List<DiskVolume> getDiskVolumes() {
|
|
|
|
|
+ Map<String, DiskVolume> map = diskService.getFileStore().stream()
|
|
|
|
|
+ .collect(Collectors.toMap(DiskVolume::getVolume, k -> k));
|
|
|
|
|
+ List<DiskVolume> list = fileStoreService.getStoreDisks().stream()
|
|
|
|
|
+ .map(localStore -> {
|
|
|
|
|
+ String volume = localStore.getDiskVolume();
|
|
|
|
|
+ String storeDir = localStore.getStoreDir();
|
|
|
|
|
+ DiskVolume diskVolume = map.get(volume);
|
|
|
|
|
+ diskVolume.setStoreDir(storeDir);
|
|
|
|
|
+ return diskVolume;
|
|
|
|
|
+ })
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
- return new StoreInfo(diskDtos);
|
|
|
|
|
|
|
+ return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -167,6 +182,18 @@ public class StoreServiceImpl implements StoreService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<FileInfo> getFiles(String pid, int pageSize, String nextObjectId) {
|
|
public List<FileInfo> getFiles(String pid, int pageSize, String nextObjectId) {
|
|
|
- return objectRepository.getFiles(pid, pageSize, nextObjectId);
|
|
|
|
|
|
|
+ String objectId = pid;
|
|
|
|
|
+ if (!objectId.isBlank()) {
|
|
|
|
|
+ FileMeta fileMeta = objectRepository.getByObjectName(pid);
|
|
|
|
|
+ int fileType = fileMeta.getFileType();
|
|
|
|
|
+ if (fileType != 1000) {
|
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
|
+ }
|
|
|
|
|
+ objectId = fileMeta.getObjectId();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ objectId = "0";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return objectRepository.getFiles(objectId, pageSize, nextObjectId);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|