fix:优化本地文件适配
This commit is contained in:
@@ -14,4 +14,8 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Builder
|
@Builder
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class LocalParam extends FileInitParam {
|
public class LocalParam extends FileInitParam {
|
||||||
|
|
||||||
|
/** 代理访问域名 */
|
||||||
|
private String domain;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public class ParamUtils {
|
|||||||
} else if (Objects.equals(storage.getType(), StorageTypeEnum.LOCAL.getValue())) {
|
} else if (Objects.equals(storage.getType(), StorageTypeEnum.LOCAL.getValue())) {
|
||||||
LocalParam param = LocalParam.builder()
|
LocalParam param = LocalParam.builder()
|
||||||
.build();
|
.build();
|
||||||
|
param.setDomain(Optional.ofNullable(configMap.get("domain")).orElse(""));
|
||||||
param.setMountPath(configMap.get("mount_path"));
|
param.setMountPath(configMap.get("mount_path"));
|
||||||
return param;
|
return param;
|
||||||
} else if (Objects.equals(storage.getType(), StorageTypeEnum.AMAZON_S3.getValue())) {
|
} else if (Objects.equals(storage.getType(), StorageTypeEnum.AMAZON_S3.getValue())) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.besscroft.diyfile.common.constant.FileConstants;
|
|||||||
import com.besscroft.diyfile.common.enums.StorageTypeEnum;
|
import com.besscroft.diyfile.common.enums.StorageTypeEnum;
|
||||||
import com.besscroft.diyfile.common.exception.DiyFileException;
|
import com.besscroft.diyfile.common.exception.DiyFileException;
|
||||||
import com.besscroft.diyfile.common.param.storage.init.LocalParam;
|
import com.besscroft.diyfile.common.param.storage.init.LocalParam;
|
||||||
|
import com.besscroft.diyfile.common.util.PathUtils;
|
||||||
import com.besscroft.diyfile.common.vo.FileInfoVo;
|
import com.besscroft.diyfile.common.vo.FileInfoVo;
|
||||||
import com.besscroft.diyfile.storage.service.base.AbstractFileBaseService;
|
import com.besscroft.diyfile.storage.service.base.AbstractFileBaseService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -91,8 +92,8 @@ public class LocalServiceImpl extends AbstractFileBaseService<LocalParam> {
|
|||||||
fileInfoVo.setSize(file.length());
|
fileInfoVo.setSize(file.length());
|
||||||
fileInfoVo.setPath(file.getPath());
|
fileInfoVo.setPath(file.getPath());
|
||||||
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
||||||
// TODO 代理链接生成
|
// 代理链接生成
|
||||||
fileInfoVo.setUrl(file.getAbsolutePath());
|
fileInfoVo.setUrl(getFileDomainUrl(file.getPath()));
|
||||||
fileInfoVo.setType(FileConstants.FILE);
|
fileInfoVo.setType(FileConstants.FILE);
|
||||||
fileInfoVo.setFile(null);
|
fileInfoVo.setFile(null);
|
||||||
}
|
}
|
||||||
@@ -139,24 +140,24 @@ public class LocalServiceImpl extends AbstractFileBaseService<LocalParam> {
|
|||||||
List<FileInfoVo> fileInfoVoList = new ArrayList<>();
|
List<FileInfoVo> fileInfoVoList = new ArrayList<>();
|
||||||
for (File file : fileList) {
|
for (File file : fileList) {
|
||||||
if (file.isDirectory()) {
|
if (file.isDirectory()) {
|
||||||
// TODO 处理文件夹
|
// 处理文件夹
|
||||||
FileInfoVo fileInfoVo = new FileInfoVo();
|
FileInfoVo fileInfoVo = new FileInfoVo();
|
||||||
fileInfoVo.setName(file.getName());
|
fileInfoVo.setName(file.getName());
|
||||||
fileInfoVo.setSize(file.length());
|
fileInfoVo.setSize(file.length());
|
||||||
fileInfoVo.setPath(file.getPath());
|
fileInfoVo.setPath(file.getPath());
|
||||||
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
||||||
fileInfoVo.setUrl(file.getAbsolutePath());
|
fileInfoVo.setUrl(getFileDomainUrl(file.getPath()));
|
||||||
fileInfoVo.setType(FileConstants.FOLDER);
|
fileInfoVo.setType(FileConstants.FOLDER);
|
||||||
fileInfoVo.setFile(null);
|
fileInfoVo.setFile(null);
|
||||||
fileInfoVoList.add(fileInfoVo);
|
fileInfoVoList.add(fileInfoVo);
|
||||||
} else {
|
} else {
|
||||||
// TODO 处理文件
|
// 处理文件
|
||||||
FileInfoVo fileInfoVo = new FileInfoVo();
|
FileInfoVo fileInfoVo = new FileInfoVo();
|
||||||
fileInfoVo.setName(file.getName());
|
fileInfoVo.setName(file.getName());
|
||||||
fileInfoVo.setSize(file.length());
|
fileInfoVo.setSize(file.length());
|
||||||
fileInfoVo.setPath(file.getPath());
|
fileInfoVo.setPath(file.getPath());
|
||||||
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
fileInfoVo.setLastModifiedDateTime(LocalDateTimeUtil.of(file.lastModified()));
|
||||||
fileInfoVo.setUrl(file.getAbsolutePath());
|
fileInfoVo.setUrl(getFileDomainUrl(file.getPath()));
|
||||||
fileInfoVo.setType(FileConstants.FILE);
|
fileInfoVo.setType(FileConstants.FILE);
|
||||||
fileInfoVo.setFile(null);
|
fileInfoVo.setFile(null);
|
||||||
fileInfoVoList.add(fileInfoVo);
|
fileInfoVoList.add(fileInfoVo);
|
||||||
@@ -165,4 +166,16 @@ public class LocalServiceImpl extends AbstractFileBaseService<LocalParam> {
|
|||||||
return fileInfoVoList;
|
return fileInfoVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文件预览路径
|
||||||
|
* @param pathAndName 文件路径和名称
|
||||||
|
* @return 文件预览路径
|
||||||
|
*/
|
||||||
|
private String getFileDomainUrl(String pathAndName) {
|
||||||
|
if (StrUtil.isBlank(initParam.getDomain())) {
|
||||||
|
return "/@api" + "/" + PathUtils.removeLeadingSlash(pathAndName);
|
||||||
|
}
|
||||||
|
return PathUtils.removeTrailingSlash(initParam.getDomain()) + "/" + PathUtils.removeLeadingSlash(pathAndName);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user