mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-16 03:58:07 +01:00
🎨 云端同步时自动创建数据快照
This commit is contained in:
parent
d490305558
commit
a948ea2942
4 changed files with 41 additions and 10 deletions
|
|
@ -201,3 +201,26 @@ func IndexRepo(memo string) (err error) {
|
|||
util.PushClearProgress()
|
||||
return
|
||||
}
|
||||
|
||||
func indexRepoBeforeCloudSync() {
|
||||
if 1 > len(Conf.Repo.Key) {
|
||||
return
|
||||
}
|
||||
|
||||
repo, err := dejavu.NewRepo(util.DataDir, util.RepoDir, Conf.Repo.Key)
|
||||
if nil != err {
|
||||
util.LogErrorf("init repo failed: %s", err)
|
||||
return
|
||||
}
|
||||
|
||||
start := time.Now()
|
||||
_, err = repo.Index("[Auto] Cloud sync", nil, nil)
|
||||
if nil != err {
|
||||
util.LogErrorf("index repo before cloud sync failed: %s", err)
|
||||
return
|
||||
}
|
||||
elapsed := time.Since(start).Milliseconds()
|
||||
if 7000 < elapsed {
|
||||
util.LogWarnf("index repo before cloud sync elapsed [%dms]", elapsed)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,7 +151,11 @@ func SyncData(boot, exit, byHand bool) {
|
|||
return
|
||||
}
|
||||
|
||||
syncConf, err := getWorkspaceDataConf()
|
||||
// 创建数据快照 https://github.com/siyuan-note/siyuan/issues/5161
|
||||
indexRepoBeforeCloudSync()
|
||||
|
||||
// 获取工作空间数据配置(数据版本)
|
||||
dataConf, err := getWorkspaceDataConf()
|
||||
if nil != err {
|
||||
msg := fmt.Sprintf(Conf.Language(80), formatErrorMsg(err))
|
||||
Conf.Sync.Stat = msg
|
||||
|
|
@ -181,8 +185,8 @@ func SyncData(boot, exit, byHand bool) {
|
|||
return
|
||||
}
|
||||
|
||||
//util.LogInfof("sync [cloud=%d, local=%d]", cloudSyncVer, syncConf.SyncVer)
|
||||
if cloudSyncVer == syncConf.SyncVer {
|
||||
//util.LogInfof("sync [cloud=%d, local=%d]", cloudSyncVer, dataConf.SyncVer)
|
||||
if cloudSyncVer == dataConf.SyncVer {
|
||||
BootSyncSucc = 0
|
||||
ExitSyncSucc = 0
|
||||
syncSameCount++
|
||||
|
|
@ -217,7 +221,7 @@ func SyncData(boot, exit, byHand bool) {
|
|||
|
||||
localSyncDirPath := Conf.Sync.GetSaveDir()
|
||||
syncSameCount = 0
|
||||
if cloudSyncVer < syncConf.SyncVer {
|
||||
if cloudSyncVer < dataConf.SyncVer {
|
||||
// 上传
|
||||
|
||||
if -1 == cloudSyncVer {
|
||||
|
|
@ -227,7 +231,7 @@ func SyncData(boot, exit, byHand bool) {
|
|||
}
|
||||
|
||||
start := time.Now()
|
||||
//util.LogInfof("sync [cloud=%d, local=%d] uploading...", cloudSyncVer, syncConf.SyncVer)
|
||||
//util.LogInfof("sync [cloud=%d, local=%d] uploading...", cloudSyncVer, dataConf.SyncVer)
|
||||
syncSize, err := util.SizeOfDirectory(localSyncDirPath, false)
|
||||
if nil != err {
|
||||
util.PushErrMsg(fmt.Sprintf(Conf.Language(80), formatErrorMsg(err)), 7000)
|
||||
|
|
@ -266,7 +270,7 @@ func SyncData(boot, exit, byHand bool) {
|
|||
util.PushClearProgress()
|
||||
elapsed := time.Now().Sub(start).Seconds()
|
||||
stat := fmt.Sprintf(Conf.Language(130), wroteFiles, humanize.Bytes(transferSize)) + fmt.Sprintf(Conf.Language(132), elapsed)
|
||||
util.LogInfof("sync [cloud=%d, local=%d, wroteFiles=%d, transferSize=%s] uploaded in [%.2fs]", cloudSyncVer, syncConf.SyncVer, wroteFiles, humanize.Bytes(transferSize), elapsed)
|
||||
util.LogInfof("sync [cloud=%d, local=%d, wroteFiles=%d, transferSize=%s] uploaded in [%.2fs]", cloudSyncVer, dataConf.SyncVer, wroteFiles, humanize.Bytes(transferSize), elapsed)
|
||||
|
||||
Conf.Sync.Uploaded = now
|
||||
Conf.Sync.Stat = stat
|
||||
|
|
@ -286,7 +290,7 @@ func SyncData(boot, exit, byHand bool) {
|
|||
}
|
||||
|
||||
start := time.Now()
|
||||
//util.LogInfof("sync [cloud=%d, local=%d] downloading...", cloudSyncVer, syncConf.SyncVer)
|
||||
//util.LogInfof("sync [cloud=%d, local=%d] downloading...", cloudSyncVer, dataConf.SyncVer)
|
||||
|
||||
// 使用路径映射文件进行解密验证 https://github.com/siyuan-note/siyuan/issues/3789
|
||||
var tmpFetchedFiles int
|
||||
|
|
@ -381,7 +385,7 @@ func SyncData(boot, exit, byHand bool) {
|
|||
|
||||
elapsed := time.Now().Sub(start).Seconds()
|
||||
stat := fmt.Sprintf(Conf.Language(129), fetchedFilesCount, humanize.Bytes(transferSize)) + fmt.Sprintf(Conf.Language(131), elapsed)
|
||||
util.LogInfof("sync [cloud=%d, local=%d, fetchedFiles=%d, transferSize=%s] downloaded in [%.2fs]", cloudSyncVer, syncConf.SyncVer, fetchedFilesCount, humanize.Bytes(transferSize), elapsed)
|
||||
util.LogInfof("sync [cloud=%d, local=%d, fetchedFiles=%d, transferSize=%s] downloaded in [%.2fs]", cloudSyncVer, dataConf.SyncVer, fetchedFilesCount, humanize.Bytes(transferSize), elapsed)
|
||||
|
||||
Conf.Sync.Downloaded = now
|
||||
Conf.Sync.Stat = stat
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue