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