上传文件夹效率优化,解决上传文件夹数据库报错问题,创建目录失败问题修复

This commit is contained in:
MAC 2023-08-06 23:40:00 +08:00
parent 3649b7d493
commit e96bac0198
3 changed files with 48 additions and 35 deletions

View File

@ -6,11 +6,11 @@
<parent>
<groupId>com.qiwenshare</groupId>
<artifactId>qiwenshare</artifactId>
<version>1.2.3</version>
<version>1.2.7</version>
</parent>
<artifactId>qiwen-file</artifactId>
<version>1.2.2-SNAPSHOT</version>
<version>1.2.7-SNAPSHOT</version>
<name>qiwen-file</name>
<description>pan.qiwenshare.com</description>
<packaging>jar</packaging>

View File

@ -78,7 +78,7 @@ public class FileDealComp {
@Autowired
private ElasticsearchClient elasticsearchClient;
public static Executor exec = Executors.newFixedThreadPool(10);
public static Executor exec = Executors.newFixedThreadPool(20);
/**
* 获取重复文件名
@ -160,11 +160,7 @@ public class FileDealComp {
try {
userFileMapper.insert(userFile);
} catch (Exception e) {
if (e.getMessage().contains("Duplicate entry")) {
//ignore
} else {
log.error(e.getMessage());
}
//ignore
}
}
qiwenFile = new QiwenFile(parentFilePath, true);
@ -285,15 +281,15 @@ public class FileDealComp {
public void uploadESByUserFileId(String userFileId) {
exec.execute(()->{
try {
try {
Map<String, Object> param = new HashMap<>();
param.put("userFileId", userFileId);
List<UserFile> userfileResult = userFileMapper.selectByMap(param);
if (userfileResult != null && userfileResult.size() > 0) {
FileSearch fileSearch = new FileSearch();
BeanUtil.copyProperties(userfileResult.get(0), fileSearch);
Map<String, Object> param = new HashMap<>();
param.put("userFileId", userFileId);
List<UserFile> userfileResult = userFileMapper.selectByMap(param);
if (userfileResult != null && userfileResult.size() > 0) {
FileSearch fileSearch = new FileSearch();
BeanUtil.copyProperties(userfileResult.get(0), fileSearch);
/*if (fileSearch.getIsDir() == 0) {
Reader reader = ufopFactory.getReader(fileSearch.getStorageType());
@ -304,11 +300,13 @@ public class FileDealComp {
fileSearch.setContent(content);
}*/
elasticsearchClient.index(i -> i.index("filesearch").id(fileSearch.getUserFileId()).document(fileSearch));
elasticsearchClient.index(i -> i.index("filesearch").id(fileSearch.getUserFileId()).document(fileSearch));
}
} catch (Exception e) {
log.debug("ES更新操作失败请检查配置");
}
} catch (Exception e) {
log.debug("ES更新操作失败请检查配置");
}
});
}

View File

@ -49,6 +49,8 @@ import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
@ -79,7 +81,7 @@ public class FiletransferService implements IFiletransferService {
@Resource
PictureFileMapper pictureFileMapper;
public static Executor exec = Executors.newFixedThreadPool(20);
@Override
public UploadFileVo uploadFileSpeed(UploadFileDTO uploadFileDTO) {
@ -99,16 +101,25 @@ public class FiletransferService implements IFiletransferService {
if (list != null && !list.isEmpty()) {
FileBean file = list.get(0);
UserFile userFile = new UserFile(qiwenFile, SessionUtil.getUserId(), file.getFileId());
UserFile param1 = QiwenFileUtil.searchQiwenFileParam(userFile);
List<UserFile> userFileList = userFileMapper.selectList(new QueryWrapper<>(param1));
if (userFileList.size() <= 0) {
try {
userFileMapper.insert(userFile);
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
} catch (Exception e) {
log.warn("文件冲突重命名处理: {}", e.getMessage());
String fileName = fileDealComp.getRepeatFileName(userFile, userFile.getFilePath());
userFile.setFileName(fileName);
userFileMapper.insert(userFile);
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
}
if (relativePath.contains("/")) {
fileDealComp.restoreParentFilePath(qiwenFile, SessionUtil.getUserId());
QiwenFile finalQiwenFile = qiwenFile;
exec.execute(()->{
fileDealComp.restoreParentFilePath(finalQiwenFile, SessionUtil.getUserId());
});
}
uploadFileVo.setSkipUpload(true);
@ -182,22 +193,26 @@ public class FiletransferService implements IFiletransferService {
UserFile userFile = new UserFile(qiwenFile, userId, fileBean.getFileId());
UserFile param = QiwenFileUtil.searchQiwenFileParam(userFile);
List<UserFile> userFileList = userFileMapper.selectList(new QueryWrapper<>(param));
if (userFileList.size() > 0) {
try {
userFileMapper.insert(userFile);
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
} catch (Exception e) {
log.warn("文件冲突重命名处理: {}", e.getMessage());
String fileName = fileDealComp.getRepeatFileName(userFile, userFile.getFilePath());
userFile.setFileName(fileName);
userFileMapper.insert(userFile);
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
}
userFileMapper.insert(userFile);
if (relativePath.contains("/")) {
fileDealComp.restoreParentFilePath(qiwenFile, userId);
QiwenFile finalQiwenFile = qiwenFile;
exec.execute(()->{
fileDealComp.restoreParentFilePath(finalQiwenFile, userId);
});
}
fileDealComp.uploadESByUserFileId(userFile.getUserFileId());
LambdaQueryWrapper<UploadTaskDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UploadTaskDetail::getIdentifier, uploadFileDto.getIdentifier());
uploadTaskDetailMapper.delete(lambdaQueryWrapper);