1
0
mirror of https://gitee.com/bookshelfplus/bookshelfplus synced 2025-09-19 00: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] = [];
fileObjectList[element.fileId].push(getLinkDOM(element)); 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; direckLinkInfo[element.id] = element;
} }
console.log(fileObjectList); console.log(fileObjectList);
@@ -564,7 +576,7 @@
return; return;
} }
var fileNameForUser = `${fileObject.fileName}.${fileObject.fileType}`; var fileNameForUser = `${fileObject.fileName}.${fileObject.fileExt}`;
var fileKeyForCos = fileObject.filePath; var fileKeyForCos = fileObject.filePath;
var visitorId = await getVisitorId(); var visitorId = await getVisitorId();

View File

@@ -377,7 +377,7 @@
uploadFile(file, data.url, data.fileId, data.fileObjectId); uploadFile(file, data.url, data.fileId, data.fileObjectId);
} else { } else {
if (data.errCode == "60001") { if (data.errCode == "60001") {
// 文件已存在 // 文件已存在于对象存储中
console.log(`出错啦!${data.errMsg} (错误码: ${data.errCode})`); console.log(`出错啦!${data.errMsg} (错误码: ${data.errCode})`);
// 再次发送请求,查询这个已存在文件的 fileId // 再次发送请求,查询这个已存在文件的 fileId
@@ -388,11 +388,15 @@
var data = axiosData.data; var data = axiosData.data;
if (status === "success") { if (status === "success") {
console.log(data); console.log(data);
if (data) {
// 查询到之后,询问用户是否跳转到文件详情页 // 查询到之后,询问用户是否跳转到文件详情页
var isRedirect = confirm(`文件已存在,是否前往查看详情?\n文件ID: ${data.id}`); var isRedirect = confirm(`文件已存在,是否前往查看详情?\n文件ID: ${data.id}`);
if (isRedirect) if (isRedirect)
location.href = `<%= pageUrl %>../detail?fileId=${data.id}`; location.href = `<%= pageUrl %>../detail?fileId=${data.id}`;
} else {
// 对象存储中存在该文件,但是系统数据库中找不到
swal("出错啦!该文件已存在于腾讯云对象存储中,但是系统中不存在")
}
} else { } else {
swal(`出错啦!${data.errMsg} (错误码: ${data.errCode})`); 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); url = qCloudCosUtils.generatePresignedUrl(userModel.getId(), httpMethodName, bookSaveFolder, fileSha1, expireMinute, urlGUID);
break; break;
case GET: 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)) { if (visitorFingerprint == null || !visitorFingerprintLogService.saveFingerprint("FailureFeedback", userModel.getId(), visitorFingerprint)) {
throw new BusinessException(BusinessErrorCode.OPERATION_NOT_ALLOWED, "参数错误,请联系管理员处理"); throw new BusinessException(BusinessErrorCode.OPERATION_NOT_ALLOWED, "参数错误,请联系管理员处理");
} }
url = qCloudCosUtils.generatePresignedUrlForGET(userModel.getId(), bookSaveFolder, fileSha1, expireMinute, urlGUID, fileNameAndExt); url = qCloudCosUtils.generatePresignedUrlForGET(userModel.getId(), bookSaveFolder, fileSha1, expireMinute, urlGUID, fileNameAndExt);
break; break;
case DELETE: 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); url = qCloudCosUtils.generatePresignedUrl(userModel.getId(), httpMethodName, bookSaveFolder, fileSha1, expireMinute, urlGUID);
break; break;
default: default:
@@ -406,7 +406,7 @@ public class FileObjectController extends BaseController {
// 如果找不到,就抛出异常 // 如果找不到,就抛出异常
if (fileObject == null) { if (fileObject == null) {
throw new BusinessException(BusinessErrorCode.PARAMETER_VALIDATION_ERROR, "文件不存在!"); throw new BusinessException(BusinessErrorCode.FILE_NOT_EXIST, "文件不存在!");
} }
// 更新文件对象状态 // 更新文件对象状态
Boolean isSuccess1 = fileObjectService.updateFileStatus(fileObject.getId(), "SUCCESS"); Boolean isSuccess1 = fileObjectService.updateFileStatus(fileObject.getId(), "SUCCESS");