🎨 改进云端同步和备份文件读写健壮性 Fix https://github.com/siyuan-note/siyuan/issues/5196

This commit is contained in:
Liang Ding 2022-06-16 10:52:18 +08:00
parent 5581397aeb
commit aefd86ce78
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
2 changed files with 11 additions and 21 deletions

View file

@ -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