添加获取指定路径文件信息的 API

This commit is contained in:
zhaojun1998
2020-01-28 14:55:06 +08:00
parent 38b811f8e6
commit b6a2e3ccb8
8 changed files with 91 additions and 3 deletions

View File

@@ -133,4 +133,17 @@ public class FileController {
end = Math.min(end, total);
return new ArrayList<>(fileItemList.subList(start, end));
}
/**
* 获取指定路径下的文件信息内容
* @param path 文件全路径
* @return 该文件的名称, 路径, 大小, 下载地址等信息.
*/
@CheckStorageStrategyInit
@GetMapping("/directlink")
public ResultBean directlink(String path) {
AbstractFileService fileService = systemConfigService.getCurrentFileService();
return ResultBean.successData(fileService.getFileItem(path));
}
}

View File

@@ -46,9 +46,9 @@ public class GlobleExceptionHandler {
* 不存在的文件异常
*/
@ExceptionHandler({NotExistFileException.class})
@ResponseStatus(HttpStatus.NOT_FOUND)
public String notExistFile(Exception ex) {
return "error/404";
@ResponseBody
public ResultBean notExistFile(Exception ex) {
return ResultBean.error("文件不存在");
}
/**

View File

@@ -238,4 +238,6 @@ public abstract class AbstractFileService extends FileCacheService implements Fi
cache.config().setRefreshPolicy(refreshPolicy);
}
public abstract FileItemDTO getFileItem(String path);
}

View File

@@ -6,6 +6,7 @@ import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import im.zhaojun.common.exception.NotExistFileException;
import im.zhaojun.common.model.dto.FileItemDTO;
import im.zhaojun.common.model.enums.FileTypeEnum;
import im.zhaojun.common.util.StringUtils;
@@ -113,4 +114,14 @@ public abstract class AbstractS3FileService extends AbstractFileService {
String path = ObjectUtil.defaultIfNull(this.path, "");
return StringUtils.removeDuplicateSeparator(basePath + "/" + path);
}
@Override
public FileItemDTO getFileItem(String path) {
List<FileItemDTO> list = fileList(path);
if (list == null || list.size() == 0) {
throw new NotExistFileException();
}
return list.get(0);
}
}