|
|
@@ -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;
|
|
|
}
|
|
|
|
|
|
|