diff --git a/kernel/model/backup.go b/kernel/model/backup.go index b7b67e2ec..22705cbed 100644 --- a/kernel/model/backup.go +++ b/kernel/model/backup.go @@ -300,7 +300,7 @@ func CreateLocalBackup() (err error) { util.LogErrorf("marshal backup conf.json failed: %s", err) } else { confPath := filepath.Join(newBackupDir, "conf.json") - if err = os.WriteFile(confPath, data, 0644); nil != err { + if err = gulu.File.WriteFileSafer(confPath, data, 0644); nil != err { util.LogErrorf("write backup conf.json [%s] failed: %s", confPath, err) } } @@ -438,13 +438,7 @@ func encryptDataDir(passwd string) (encryptedDataDir string, err error) { return io.EOF } - f, err0 := os.Create(p) - if nil != err0 { - util.LogErrorf("create file [%s] failed: %s", p, err0) - err = err0 - return io.EOF - } - data, err0 := os.ReadFile(path) + data, err0 := filelock.NoLockFileRead(path) if nil != err0 { util.LogErrorf("read file [%s] failed: %s", path, err0) err = err0 @@ -456,16 +450,12 @@ func encryptDataDir(passwd string) (encryptedDataDir string, err error) { err = errors.New("encrypt file failed") return io.EOF } - if _, err0 = f.Write(data); nil != err0 { + + if err0 = gulu.File.WriteFileSafer(p, data, 0644); nil != err0 { util.LogErrorf("write file [%s] failed: %s", p, err0) err = err0 return io.EOF } - if err0 = f.Close(); nil != err0 { - util.LogErrorf("close file [%s] failed: %s", p, err0) - err = err0 - return io.EOF - } fi, err0 := os.Stat(path) if nil != err0 { @@ -590,7 +580,7 @@ func decryptDataDir(passwd string) (decryptedDataDir string, err error) { err = errors.New(Conf.Language(40)) return io.EOF } - if err0 = os.WriteFile(plainP, data, 0644); nil != err0 { + if err0 = gulu.File.WriteFileSafer(plainP, data, 0644); nil != err0 { util.LogErrorf("write file [%s] failed: %s", plainP, err0) err = err0 return io.EOF diff --git a/kernel/model/sync.go b/kernel/model/sync.go index e4bc13913..e253a7455 100644 --- a/kernel/model/sync.go +++ b/kernel/model/sync.go @@ -654,7 +654,7 @@ func genCloudIndex(localDirPath string, excludes map[string]bool, calcHash bool) util.LogErrorf("marshal sync cloud index failed: %s", err) return } - if err = os.WriteFile(filepath.Join(localDirPath, "index.json"), data, 0644); nil != err { + if err = gulu.File.WriteFileSafer(filepath.Join(localDirPath, "index.json"), data, 0644); nil != err { util.LogErrorf("write sync cloud index failed: %s", err) return } @@ -748,7 +748,7 @@ func recoverSyncData(metaPath, indexPath string, modified map[string]bool) (decr } } - if err0 = os.WriteFile(plainP, data, 0644); nil != err0 { + if err0 = gulu.File.WriteFileSafer(plainP, data, 0644); nil != err0 { util.LogErrorf("write file [%s] failed: %s", plainP, err0) err = err0 return io.EOF @@ -836,7 +836,7 @@ func prepareSyncData(passwd string, unchangedDataList map[string]bool) (encrypte } } - err0 = os.WriteFile(p, data, 0644) + err0 = gulu.File.WriteFileSafer(p, data, 0644) if nil != err0 { util.LogErrorf("write file [%s] failed: %s", p, err0) err = err0 @@ -895,7 +895,7 @@ func prepareSyncData(passwd string, unchangedDataList map[string]bool) (encrypte util.LogErrorf("encrypt file failed: %s", err) return } - if err = os.WriteFile(filepath.Join(encryptedDataDir, pathJSON), data, 0644); nil != err { + if err = gulu.File.WriteFileSafer(filepath.Join(encryptedDataDir, pathJSON), data, 0644); nil != err { return } return @@ -1107,7 +1107,7 @@ func incLocalSyncVer() { conf.SyncVer++ data, _ := gulu.JSON.MarshalIndentJSON(conf, "", " ") confPath := filepath.Join(Conf.Sync.GetSaveDir(), ".siyuan", "conf.json") - if err = os.WriteFile(confPath, data, 0644); nil != err { + if err = gulu.File.WriteFileSafer(confPath, data, 0644); nil != err { util.LogErrorf("save sync conf [%s] failed: %s", confPath, err) } return @@ -1259,7 +1259,7 @@ func getSyncIgnoreList() (ret *hashset.Set) { ignore := filepath.Join(util.DataDir, ".siyuan", "syncignore") os.MkdirAll(filepath.Dir(ignore), 0755) if !gulu.File.IsExist(ignore) { - if err := os.WriteFile(ignore, nil, 0644); nil != err { + if err := gulu.File.WriteFileSafer(ignore, nil, 0644); nil != err { util.LogErrorf("create syncignore [%s] failed: %s", ignore, err) return }