fix:文件同步bug修复,md5

This commit is contained in:
shixiaohua 2024-03-14 14:27:51 +08:00
parent 68b831e155
commit 1247134435
2 changed files with 40 additions and 22 deletions

View File

@ -14,16 +14,17 @@ class UploadUtils {
}); });
static Bucket = 'note-1324909903' static Bucket = 'note-1324909903'
static Region = 'ap-beijing' static Region = 'ap-beijing'
static staticStore
constructor(store) { constructor(store) {
this.store = store; this.store = store;
UploadUtils.staticStore = store;
} }
getActiveFile() { getActiveFile() {
let tableBarItem = JSON.parse(this.store.get("persist:tableBarItem")); let tableBarItem = JSON.parse(this.store.get("persist:tableBarItem"));
if (!tableBarItem) { if (!tableBarItem) {
return; return;
} }
return tableBarItem.activeKey ? tableBarItem.activeKey.replaceAll('"', "") : undefined; return tableBarItem.activeKey ? JSON.parse(tableBarItem.activeKey) : undefined;
} }
/* /*
@ -33,7 +34,6 @@ class UploadUtils {
let dirMessage = JSON.parse(this.store.get("persist:dirMessage")); let dirMessage = JSON.parse(this.store.get("persist:dirMessage"));
let fileMd5 let fileMd5
if (activeFile && dirMessage && dirMessage.data) { if (activeFile && dirMessage && dirMessage.data) {
console.log("dirMessage.data", JSON.parse(dirMessage.data, []))
let find = JSON.parse(dirMessage.data, []).find(file => file.fileId === activeFile || file.filePath === activeFile); let find = JSON.parse(dirMessage.data, []).find(file => file.fileId === activeFile || file.filePath === activeFile);
if (find) { if (find) {
fileMd5 = find.fileMd5; fileMd5 = find.fileMd5;
@ -53,8 +53,9 @@ class UploadUtils {
Bucket: UploadUtils.Bucket, Bucket: UploadUtils.Bucket,
Region: UploadUtils.Region, Region: UploadUtils.Region,
// 不能以 / 开头 // 不能以 / 开头
Key: activeFile, Key: process.platform==='win32'?activeFile.replaceAll("\\","/"):activeFile
}, function (err, data) { }, function (err, data) {
console.log('upLoadFileUtil:',err || data);
if (data && data.ETag) { if (data && data.ETag) {
// 文件存在比较MD5值 // 文件存在比较MD5值
let onlineMd5 = data.ETag.replaceAll('"', "") let onlineMd5 = data.ETag.replaceAll('"', "")
@ -65,10 +66,11 @@ class UploadUtils {
"buttons": ["确认"], "buttons": ["确认"],
"defaultId": 0 "defaultId": 0
}); });
return
} }
}else {
UploadUtils.selfUploadFile(activeFile)
} }
UploadUtils.selfUploadFile(activeFile,fileMd5)
}) })
} }
@ -79,8 +81,9 @@ class UploadUtils {
Bucket: UploadUtils.Bucket, Bucket: UploadUtils.Bucket,
Region: UploadUtils.Region, Region: UploadUtils.Region,
// 不能以 / 开头 // 不能以 / 开头
Key: activeFile, Key: process.platform==='win32'?activeFile.replaceAll("\\","/"):activeFile,
}, function (err, data) { }, function (err, data) {
console.log('downLoadFileUtil:',err || data);
if (data && data.ETag) { if (data && data.ETag) {
// 文件存在比较MD5值 // 文件存在比较MD5值
let onlineMd5 = data.ETag.replaceAll('"', "") let onlineMd5 = data.ETag.replaceAll('"', "")
@ -91,19 +94,19 @@ class UploadUtils {
"buttons": ["确认"], "buttons": ["确认"],
"defaultId": 0 "defaultId": 0
}); });
return
} }
}else {
UploadUtils.selfDownLoadFile(activeFile)
} }
UploadUtils.selfDownLoadFile(activeFile)
}) })
} }
static selfUploadFile(activeFile) { static selfUploadFile(activeFile,fileMd5) {
console.log("cos.uploadFile") console.log("cos.uploadFile",activeFile,fileMd5)
UploadUtils.cos.uploadFile({ UploadUtils.cos.uploadFile({
Bucket: UploadUtils.Bucket, /* 填入您自己的存储桶,必须字段 */ Bucket: UploadUtils.Bucket, /* 填入您自己的存储桶,必须字段 */
Region: UploadUtils.Region, /* 存储桶所在地域,例如 ap-beijing必须字段 */ Region: UploadUtils.Region, /* 存储桶所在地域,例如 ap-beijing必须字段 */
Key: activeFile, /* 存储在桶里的对象键例如1.jpga/b/test.txt必须字段 */ Key: process.platform==='win32'?activeFile.replaceAll("\\","/"):activeFile, /* 存储在桶里的对象键例如1.jpga/b/test.txt必须字段 */
FilePath: activeFile, /* 必须 */ FilePath: activeFile, /* 必须 */
SliceSize: 1024 * 1024 * 5, /* 触发分块上传的阈值超过5MB使用分块上传非必须 */ SliceSize: 1024 * 1024 * 5, /* 触发分块上传的阈值超过5MB使用分块上传非必须 */
onTaskReady: function (taskId) { /* 非必须 */ onTaskReady: function (taskId) { /* 非必须 */
@ -132,7 +135,7 @@ class UploadUtils {
}, },
// 支持自定义headers 非必须 // 支持自定义headers 非必须
}, function (err, data) { }, function (err, data) {
console.log(err || data); console.log("uploadFile:callback:",err || data);
}); });
} }
@ -142,7 +145,7 @@ class UploadUtils {
UploadUtils.cos.getObject({ UploadUtils.cos.getObject({
Bucket: UploadUtils.Bucket, /* 填入您自己的存储桶,必须字段 */ Bucket: UploadUtils.Bucket, /* 填入您自己的存储桶,必须字段 */
Region: UploadUtils.Region, /* 存储桶所在地域,例如 ap-beijing必须字段 */ Region: UploadUtils.Region, /* 存储桶所在地域,例如 ap-beijing必须字段 */
Key: activeFile, /* 存储在桶里的对象键例如1.jpga/b/test.txt必须字段 */ Key: process.platform==='win32'?activeFile.replaceAll("\\","/"):activeFile, /* 存储在桶里的对象键例如1.jpga/b/test.txt必须字段 */
Output: activeFile Output: activeFile
// 支持自定义headers 非必须 // 支持自定义headers 非必须
}, function (err, data) { }, function (err, data) {
@ -161,6 +164,20 @@ class UploadUtils {
"buttons": ["确认"], "buttons": ["确认"],
"defaultId": 0 "defaultId": 0
}) })
// 修改store中Md5值
let persist = UploadUtils.staticStore.get("persist:dirMessage");
if (persist){
let persistObj = JSON.parse(persist)
let data1 = persistObj.data;
console.log("data1",data1,Array.isArray(data1))
let parseArray = JSON.parse(data1, []);
let find =parseArray.find(file => file.fileId === activeFile || file.filePath === activeFile);
if (find) {
find.fileMd5=data.ETag.replaceAll('"',"");
}
persistObj.data=JSON.stringify(parseArray)
UploadUtils.staticStore.set("persist:dirMessage",JSON.stringify(persistObj))
}
} }
}); });
} }
@ -174,7 +191,7 @@ class UploadUtils {
Bucket: UploadUtils.Bucket, Bucket: UploadUtils.Bucket,
Region: UploadUtils.Region, Region: UploadUtils.Region,
// 不能以 / 开头 // 不能以 / 开头
Key: activeFile, Key: process.platform==='win32'?activeFile.replaceAll("\\","/"):activeFile,
}, function (err, data) { }, function (err, data) {
console.log("err || data.CommonPrefixes" + activeFile, err || data); console.log("err || data.CommonPrefixes" + activeFile, err || data);
if (data && data.ETag) { if (data && data.ETag) {
@ -199,11 +216,11 @@ class UploadUtils {
"buttons": ["是", "否"], "buttons": ["是", "否"],
"defaultId": 0 "defaultId": 0
}) === 0) { }) === 0) {
UploadUtils.selfUploadFile(activeFile) UploadUtils.selfUploadFile(activeFile,fileMd5)
} }
} }
} else { } else {
UploadUtils.selfUploadFile(activeFile) UploadUtils.selfUploadFile(activeFile,fileMd5)
} }
}); });
} }

View File

@ -87,14 +87,15 @@ const SaveFilePlugin=(props)=> {
// 后期不再读取文件直接读取文件MD5 // 后期不再读取文件直接读取文件MD5
importFile(filePath).then(value => { importFile(filePath).then(value => {
let save let save
let newFileMd5 let oldFileMd5
let newFileMd5 =md5(resultSave)
if (props.filePath.endsWith(".md")){ if (props.filePath.endsWith(".md")){
// editorState // editorState
newFileMd5 = md5(value.toString()); oldFileMd5 = md5(value.toString());
save = (isEmpty(value)) || md5(resultSave) !== newFileMd5; save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
}else { }else {
newFileMd5 = md5(JSON.stringify(JSON.parse(value.toString()))); oldFileMd5 = md5(JSON.stringify(JSON.parse(value.toString())));
save = (isEmpty(value)) || md5(resultSave) !== newFileMd5; save = (isEmpty(value)) || newFileMd5 !== oldFileMd5;
} }
if (save) { if (save) {
overWriteFile(filePath, resultSave).then(()=>{ overWriteFile(filePath, resultSave).then(()=>{