Bläddra i källkod

:art: 同步下载支持断点续传 Fix https://github.com/siyuan-note/siyuan/issues/5056

Liang Ding 3 år sedan
förälder
incheckning
fa45fafca4
1 ändrade filer med 17 tillägg och 1 borttagningar
  1. 17 1
      kernel/model/sync.go

+ 17 - 1
kernel/model/sync.go

@@ -300,7 +300,9 @@ func SyncData(boot, exit, byHand bool) {
 		syncDownloadErrCount++
 		syncDownloadErrCount++
 		return
 		return
 	}
 	}
-	data, err := os.ReadFile(filepath.Join(util.TempDir, "/sync/"+pathJSON))
+
+	tmpPathJSON := filepath.Join(util.TempDir, "/sync/"+pathJSON)
+	data, err := os.ReadFile(tmpPathJSON)
 	if nil != err {
 	if nil != err {
 		return
 		return
 	}
 	}
@@ -320,6 +322,20 @@ func SyncData(boot, exit, byHand bool) {
 		syncDownloadErrCount++
 		syncDownloadErrCount++
 		return
 		return
 	}
 	}
+	if err = os.Rename(tmpPathJSON, filepath.Join(localSyncDirPath, pathJSON)); nil != err {
+		util.PushClearMsg()
+		msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
+		Conf.Sync.Stat = msg
+		util.PushErrMsg(msg, 7000)
+		if boot {
+			BootSyncSucc = 1
+		}
+		if exit {
+			ExitSyncSucc = 1
+		}
+		syncDownloadErrCount++
+		return
+	}
 
 
 	fetchedFilesCount, transferSize, downloadedFiles, err := ossDownload(localSyncDirPath, "sync/"+Conf.Sync.CloudName, boot || exit)
 	fetchedFilesCount, transferSize, downloadedFiles, err := ossDownload(localSyncDirPath, "sync/"+Conf.Sync.CloudName, boot || exit)
 	if nil != err {
 	if nil != err {