Sfoglia il codice sorgente

上传代码改查代码提交

pans 7 mesi fa
parent
commit
2cc52b72f3

+ 2 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/MinioController.java

@@ -13,6 +13,7 @@ import vip.xiaonuo.disk.util.MinioUtil;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author 吴浩炼
@@ -43,7 +44,7 @@ public class MinioController {
     }
 
     @PostMapping("/merge")
-    public ResponseEntity<Boolean> merge(@RequestParam String md5, @RequestParam Integer chunkTotal, @RequestParam String fileSuffix,@RequestParam String fileName, @RequestParam long fileSize) {
+    public ResponseEntity<Map<String,Object>> merge(@RequestParam String md5, @RequestParam Integer chunkTotal, @RequestParam String fileSuffix, @RequestParam String fileName, @RequestParam long fileSize) {
         return ResponseEntity.ok(minioUtil.merge(md5, chunkTotal, fileSuffix,fileSize,fileName));
     }
 

+ 24 - 18
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/MinioUtil.java

@@ -11,6 +11,7 @@ import io.minio.errors.*;
 import io.minio.messages.DeleteError;
 import io.minio.messages.DeleteObject;
 import io.minio.messages.Item;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -35,9 +36,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
@@ -106,15 +105,11 @@ public class MinioUtil {
     public List<String> checkFilesExits(List<UploadFile> md5List) {
 
         ArrayList<String> noExitList = new ArrayList<>();
-
-
         md5List.forEach(item -> {
             try {
-
+                //根据文件名称查询userFileId
                 String fileSuffix=item.getFileSuffix().substring(1, item.getFileSuffix().length());
-
                 String fileUrl = UFOPUtils.getUploadFileUrl(item.getMd5(), fileSuffix);
-
                 logger.info("校验是否存在的文件名是: "+fileUrl);
                 minioClient.statObject(StatObjectArgs.builder().bucket(bucket).object(fileUrl).build());
             } catch (Exception e) {
@@ -249,7 +244,9 @@ public class MinioUtil {
      * @param fileSuffix
      * @return
      */
-    public Boolean merge(String md5, Integer chunkTotal, String fileSuffix,long fileSize,String fileName) {
+    public Map<String,Object> merge(String md5, Integer chunkTotal, String fileSuffix,long fileSize,String fileName) {
+        Map<String,Object> rs=new HashMap<>();
+
         fileSuffix=fileSuffix.substring(1, fileSuffix.length());
 
         String fileUrl = UFOPUtils.getUploadFileUrl(md5, fileSuffix);
@@ -262,7 +259,8 @@ public class MinioUtil {
 
         if (!missChunkIndexList.isEmpty()) { // 缺失上传分块
             logger.warn("缺失分块,缺失列表为:{},需要重新上传", missChunkIndexList);
-            return false;
+            rs.put("result", false);
+            return rs;
         }
 
         // 合并文件
@@ -284,19 +282,23 @@ public class MinioUtil {
         } catch (Exception e) {
             logger.warn("合并过程中报错:", e);
             logger.warn("合并失败...");
-            return false;
+            rs.put("result", false);
+            return rs;
         }
         logger.info("合并成功了...");
 
         String url = fileUrl;
         logger.info("插入的的url是:" + url);
-        Boolean insertResult = this.insertUrl(url, fileSize,md5,fileName);
+        Map<String,Object> map = this.insertUrl(url, fileSize,md5,fileName);
         Boolean deleteResult = this.deleteChunks(md5);
-        logger.info(insertResult.toString());
+        logger.info(map.toString());
         logger.info(deleteResult.toString());
-        if (insertResult && deleteResult) {
+        if (MapUtils.getBoolean(map, "rs") && deleteResult) {
             logger.info("插入成功了...");
-            return true;
+            String userFileId=MapUtils.getString(map, "userFileId");
+            rs.put("result", true);
+            rs.put("userFileId", userFileId);
+            return rs;
         } else {
             logger.error("插入失败...");
             UploadTask uploadTask = new UploadTask();
@@ -308,7 +310,8 @@ public class MinioUtil {
             uploadTask.setExtendName(fileSuffix);
             uploadTask.setUserId(StpLoginUserUtil.getLoginUser().getId());
             uploadTaskMapper.insert(uploadTask);
-            return false;
+            rs.put("result", false);
+            return rs;
         }
 
     }
@@ -320,7 +323,7 @@ public class MinioUtil {
      * @param url
      * @return
      */
-    public Boolean insertUrl(String url,long fileSize,String md5,String fileName) {
+    public Map<String,Object> insertUrl(String url,long fileSize,String md5,String fileName) {
         ResourceFile file = new ResourceFile(url,fileSize,3,md5, StpLoginUserUtil.getLoginUser().getId());
         resourceFileMapper.insert(file);
 
@@ -404,7 +407,10 @@ public class MinioUtil {
             }
         }
         resourceFileDealComp.parseMusicFile(qiwenFile.getExtendName(), 3, url, file.getFileId());
-        return true;
+        Map<String, Object> map = new HashMap();
+        map.put("userFileId", resourceUserFile.getUserFileId());
+        map.put("rs", true);
+        return map;
     }