Преглед изворни кода

添加一个 img channel, 这个上传通道返回的值包括 uploadId 和 url

reghao пре 2 година
родитељ
комит
1c44da3259

+ 1 - 0
dfs-store/src/main/java/cn/reghao/dfs/store/service/ChannelValidateService.java

@@ -26,6 +26,7 @@ public class ChannelValidateService {
             case avatar:
                 return validateAvatar(file);
             case image:
+            case img:
                 return validateImage(file);
             case photo:
                 return validatePhoto(file);

+ 3 - 1
dfs-store/src/main/java/cn/reghao/dfs/store/service/ObjectNameService.java

@@ -49,7 +49,9 @@ public class ObjectNameService {
         if (channelId == UploadChannel.disk.getCode()) {
             diskFile = true;
             scope = ObjectScope.PRIVATE.getCode();
-        } else if (channelId == UploadChannel.avatar.getCode() || channelId == UploadChannel.image.getCode()) {
+        } else if (channelId == UploadChannel.avatar.getCode()
+                || channelId == UploadChannel.image.getCode()
+                || channelId == UploadChannel.img.getCode()) {
             diskFile = false;
             scope = ObjectScope.PUBLIC.getCode();
         } else {

+ 11 - 1
dfs-store/src/main/java/cn/reghao/dfs/store/task/FileProcessor.java

@@ -1,5 +1,6 @@
 package cn.reghao.dfs.store.task;
 
+import cn.reghao.dfs.store.db.repository.ImageRepository;
 import cn.reghao.dfs.store.model.vo.ObjectResult;
 import cn.reghao.dfs.store.task.processor.AudioFileProcessor;
 import cn.reghao.dfs.store.task.processor.DiskFileProcessor;
@@ -26,13 +27,16 @@ public class FileProcessor {
     private final VideoFileProcessor videoFileProcessor;
     private final AudioFileProcessor audioFileProcessor;
     private final DiskFileProcessor diskFileProcessor;
+    private final ImageRepository imageRepository;
 
     public FileProcessor(ImageFileProcessor imageFileProcessor, VideoFileProcessor videoFileProcessor,
-                         AudioFileProcessor audioFileProcessor, DiskFileProcessor diskFileProcessor) {
+                         AudioFileProcessor audioFileProcessor, DiskFileProcessor diskFileProcessor,
+                         ImageRepository imageRepository) {
         this.imageFileProcessor = imageFileProcessor;
         this.videoFileProcessor = videoFileProcessor;
         this.audioFileProcessor = audioFileProcessor;
         this.diskFileProcessor = diskFileProcessor;
+        this.imageRepository = imageRepository;
     }
 
     public UploadFileRet process(ObjectResult objectResult, int channelId) {
@@ -56,6 +60,12 @@ public class FileProcessor {
             case image:
                 uploadFileRet = imageFileProcessor.processImage(objectResult);
                 break;
+            case img:
+                uploadFileRet = imageFileProcessor.processImage(objectResult);
+                String uploadId = uploadFileRet.getUploadId();
+                String url = imageRepository.getImageUrl(uploadId).getOriginalUrl();
+                uploadFileRet.setUrl(url);
+                break;
             case photo:
                 uploadFileRet = imageFileProcessor.processPhoto(objectResult);
                 break;

+ 2 - 1
oss-api/src/main/java/cn/reghao/oss/api/constant/UploadChannel.java

@@ -19,7 +19,8 @@ public enum UploadChannel {
     // 图片上传(单个文件最大 10MiB)
     image(5, "image/i/", 1024L*1024*10),
     // 用户状态照片上传(单个文件最大 100MiB)
-    photo(6, "image/p/", 1024L*1024*100);
+    photo(6, "image/p/", 1024L*1024*100),
+    img(7, "img/", 1024L*1024*10);
 
     private final int code;
     private final String prefix;

+ 5 - 1
oss-api/src/main/java/cn/reghao/oss/api/rest/UploadFileRet.java

@@ -13,7 +13,7 @@ public class UploadFileRet implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private final String uploadId;
-    private final String url;
+    private String url;
     private final boolean merged;
 
     public UploadFileRet(String uploadId) {
@@ -27,4 +27,8 @@ public class UploadFileRet implements Serializable {
         this.url = url;
         this.merged = true;
     }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 }