mirror of
https://gitee.com/bookshelfplus/bookshelfplus
synced 2025-09-21 01:10:39 +08:00
修复对象存储文件下载失败问题;文件不存在错误码更新为PARAMETER_VALIDATION_ERROR;考虑上传文件时COS中存在但是系统中找不到记录情况
This commit is contained in:
@@ -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();
|
||||
|
@@ -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})`);
|
||||
}
|
||||
|
@@ -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");
|
||||
|
Reference in New Issue
Block a user