Skip to content

Commit

Permalink
refactor: 优化文件地址逻辑 (#493)
Browse files Browse the repository at this point in the history
* refactor: 优化文件地址逻辑
  • Loading branch information
zhou-hao committed Apr 7, 2024
1 parent b61b0e3 commit 16fee41
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.io.FilenameUtils;
import org.jetlinks.community.io.utils.FileUtils;
import org.springframework.http.MediaType;
import org.springframework.util.StringUtils;

Expand Down Expand Up @@ -42,48 +43,27 @@ public void withBasePath(String apiBashPath) {
if (!apiBashPath.endsWith("/")) {
apiBashPath = apiBashPath + "/";
}
accessUrl = apiBashPath + "file/" + id + "?accessKey=" + accessKey().orElse("");
accessUrl = apiBashPath + "file/" + id + "." + extension + "?accessKey=" + accessKey().orElse("");
}


public MediaType mediaType() {
if (!StringUtils.hasText(extension)) {
return MediaType.APPLICATION_OCTET_STREAM;
}
switch (extension.toLowerCase()) {
case "jpg":
case "jpeg":
return MediaType.IMAGE_JPEG;
case "png":
return MediaType.IMAGE_PNG;
case "gif":
return MediaType.IMAGE_GIF;
case "mp4":
return MediaType.parseMediaType("video/mp4");
case "flv":
return MediaType.parseMediaType("video/x-flv");
case "text":
case "txt":
return MediaType.TEXT_PLAIN;
case "js":
return MediaType.APPLICATION_JSON;
default:
return MediaType.APPLICATION_OCTET_STREAM;
}
return FileUtils.getMediaTypeByExtension(extension);
}


public boolean hasOption(FileOption option){
if(options==null){
public boolean hasOption(FileOption option) {
if (options == null) {
return false;
}
for (FileOption fileOption : options) {
if(fileOption==option){
if (fileOption == option) {
return true;
}
}
return false;
}

public FileInfo withFileName(String fileName) {
name = fileName;
extension = FilenameUtils.getExtension(fileName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ public static MediaType getMediaTypeByName(String name) {
return getMediaTypeByExtension(FilenameUtils.getExtension(name));
}


/**
* 根据文件拓展名获取MediaType
*
* @param extension extension
* @return MediaType
*/
public static MediaType getMediaTypeByExtension(String extension) {
if (!StringUtils.hasText(extension)) {
return MediaType.APPLICATION_OCTET_STREAM;
Expand All @@ -60,15 +67,34 @@ public static MediaType getMediaTypeByExtension(String extension) {
return MediaType.IMAGE_PNG;
case "gif":
return MediaType.IMAGE_GIF;
case "svg":
return MediaType.parseMediaType("image/svg+xml");
case "tiff":
case "tif":
return MediaType.parseMediaType("image/tiff");
case "webp":
return MediaType.parseMediaType("image/webp");
case "mp4":
return MediaType.parseMediaType("video/mp4");
case "flv":
return MediaType.parseMediaType("video/x-flv");
case "text":
case "txt":
return MediaType.TEXT_PLAIN;
case "html":
return MediaType.TEXT_HTML;
case "md":
return MediaType.TEXT_MARKDOWN;
case "css":
return MediaType.parseMediaType("text/css");
case "js":
return MediaType.parseMediaType("text/javascript");
case "xml":
return MediaType.TEXT_XML;
case "json":
return MediaType.APPLICATION_JSON;
case "pdf":
return MediaType.APPLICATION_PDF;
default:
return MediaType.APPLICATION_OCTET_STREAM;
}
Expand Down

0 comments on commit 16fee41

Please sign in to comment.