1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-21 01:10:39 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee

修复对象存储文件下载失败问题;文件不存在错误码更新为PARAMETER_VALIDATION_ERROR;考虑上传文件时COS中存在但是系统中找不到记录情况

This commit is contained in:
2022-04-28 20:21:27 +08:00
parent 1378ef1bdf
commit bc8508248e
3 changed files with 26 additions and 10 deletions

View File

@@ -489,6 +489,18 @@
fileObjectList[element.fileId] = [];
fileObjectList[element.fileId].push(getLinkDOM(element));
// 从文件中找到fileSha1, fileName, fileExt并填入文件对象中否则下载时获取不到
var fileId = element.fileId;
for (let j = 0; j < data.file.length; j++) {
const fileElement = data.file[j];
if (element.fileId == fileElement.id) {
// 找到文件
element.fileSha1 = fileElement.fileSha1;
element.fileName = fileElement.fileName;
element.fileExt = fileElement.fileExt;
}
}
direckLinkInfo[element.id] = element;
}
console.log(fileObjectList);
@@ -564,7 +576,7 @@
return;
}
var fileNameForUser = `${fileObject.fileName}.${fileObject.fileType}`;
var fileNameForUser = `${fileObject.fileName}.${fileObject.fileExt}`;
var fileKeyForCos = fileObject.filePath;
var visitorId = await getVisitorId();

View File

@@ -377,7 +377,7 @@
uploadFile(file, data.url, data.fileId, data.fileObjectId);
} else {
if (data.errCode == "60001") {
// 文件已存在
// 文件已存在于对象存储中
console.log(`出错啦!${data.errMsg} (错误码: ${data.errCode})`);
// 再次发送请求,查询这个已存在文件的 fileId
@@ -388,11 +388,15 @@
var data = axiosData.data;
if (status === "success") {
console.log(data);
// 查询到之后,询问用户是否跳转到文件详情页
var isRedirect = confirm(`文件已存在,是否前往查看详情?\n文件ID: ${data.id}`);
if (isRedirect)
location.href = `<%= pageUrl %>../detail?fileId=${data.id}`;
if (data) {
// 查询到之后,询问用户是否跳转到文件详情页
var isRedirect = confirm(`文件已存在,是否前往查看详情?\n文件ID: ${data.id}`);
if (isRedirect)
location.href = `<%= pageUrl %>../detail?fileId=${data.id}`;
} else {
// 对象存储中存在该文件,但是系统数据库中找不到
swal("出错啦!该文件已存在于腾讯云对象存储中,但是系统中不存在")
}
} else {
swal(`出错啦!${data.errMsg} (错误码: ${data.errCode})`);
}

View File

@@ -324,14 +324,14 @@ public class FileObjectController extends BaseController {
url = qCloudCosUtils.generatePresignedUrl(userModel.getId(), httpMethodName, bookSaveFolder, fileSha1, expireMinute, urlGUID);
break;
case GET:
if (!isExist) throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件不存在");
if (!isExist) throw new BusinessException(BusinessErrorCode.FILE_NOT_EXIST, "文件不存在");
if (visitorFingerprint == null || !visitorFingerprintLogService.saveFingerprint("FailureFeedback", userModel.getId(), visitorFingerprint)) {
throw new BusinessException(BusinessErrorCode.OPERATION_NOT_ALLOWED, "参数错误,请联系管理员处理");
}
url = qCloudCosUtils.generatePresignedUrlForGET(userModel.getId(), bookSaveFolder, fileSha1, expireMinute, urlGUID, fileNameAndExt);
break;
case DELETE:
if (!isExist) throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件不存在");
if (!isExist) throw new BusinessException(BusinessErrorCode.FILE_NOT_EXIST, "文件不存在");
url = qCloudCosUtils.generatePresignedUrl(userModel.getId(), httpMethodName, bookSaveFolder, fileSha1, expireMinute, urlGUID);
break;
default:
@@ -406,7 +406,7 @@ public class FileObjectController extends BaseController {
// 如果找不到,就抛出异常
if (fileObject == null) {
throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件不存在!");
throw new BusinessException(BusinessErrorCode.FILE_NOT_EXIST, "文件不存在!");
}
// 更新文件对象状态
Boolean isSuccess1 = fileObjectService.updateFileStatus(fileObject.getId(), "SUCCESS");