mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-07 09:18:49 +01:00
🎨 细化云端同步锁提升稳定性 https://github.com/siyuan-note/siyuan/issues/5887
This commit is contained in:
parent
90f45a420e
commit
3468fb0976
5 changed files with 17 additions and 11 deletions
|
|
@ -85,7 +85,7 @@ func setFileAnnotation(c *gin.Context) {
|
|||
ret.Msg = err.Error()
|
||||
return
|
||||
}
|
||||
if err := gulu.File.WriteFileSafer(writePath, []byte(data), 0644); nil != err {
|
||||
if err := util.WriteFileSafer(writePath, []byte(data)); nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
return
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ func extensionCopy(c *gin.Context) {
|
|||
}
|
||||
fName = fName + "-" + ast.NewNodeID() + ext
|
||||
writePath := filepath.Join(assets, fName)
|
||||
if err = gulu.File.WriteFileSafer(writePath, data, 0644); nil != err {
|
||||
if err = util.WriteFileSafer(writePath, data); nil != err {
|
||||
ret.Code = -1
|
||||
ret.Msg = err.Error()
|
||||
break
|
||||
|
|
|
|||
|
|
@ -383,7 +383,7 @@ func saveWorkspaceAssets(assets []string) {
|
|||
logging.LogErrorf("create assets conf failed: %s", err)
|
||||
return
|
||||
}
|
||||
if err = gulu.File.WriteFileSafer(confPath, data, 0644); nil != err {
|
||||
if err = util.WriteFileSafer(confPath, data); nil != err {
|
||||
logging.LogErrorf("write assets conf failed: %s", err)
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,9 +34,6 @@ import (
|
|||
)
|
||||
|
||||
func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]interface{}, err error) {
|
||||
util.WritingFileLock.Lock()
|
||||
defer util.WritingFileLock.Unlock()
|
||||
|
||||
succMap = map[string]interface{}{}
|
||||
|
||||
bt := treenode.GetBlockTree(id)
|
||||
|
|
@ -88,7 +85,7 @@ func InsertLocalAssets(id string, assetPaths []string) (succMap map[string]inter
|
|||
f.Close()
|
||||
return
|
||||
}
|
||||
if err = gulu.File.WriteFileSaferByReader(writePath, f, 0644); nil != err {
|
||||
if err = util.WriteFileSaferByReader(writePath, f); nil != err {
|
||||
f.Close()
|
||||
return
|
||||
}
|
||||
|
|
@ -104,9 +101,6 @@ func Upload(c *gin.Context) {
|
|||
ret := gulu.Ret.NewResult()
|
||||
defer c.JSON(200, ret)
|
||||
|
||||
util.WritingFileLock.Lock()
|
||||
defer util.WritingFileLock.Unlock()
|
||||
|
||||
form, err := c.MultipartForm()
|
||||
if nil != err {
|
||||
logging.LogErrorf("insert asset failed: %s", err)
|
||||
|
|
@ -174,7 +168,7 @@ func Upload(c *gin.Context) {
|
|||
f.Close()
|
||||
break
|
||||
}
|
||||
if err = gulu.File.WriteFileSaferByReader(writePath, f, 0644); nil != err {
|
||||
if err = util.WriteFileSaferByReader(writePath, f); nil != err {
|
||||
errFiles = append(errFiles, fName)
|
||||
ret.Msg = err.Error()
|
||||
f.Close()
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
package util
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
|
|
@ -32,6 +33,17 @@ import (
|
|||
|
||||
var WritingFileLock = sync.Mutex{}
|
||||
|
||||
func WriteFileSaferByReader(writePath string, reader io.Reader) (err error) {
|
||||
WritingFileLock.Lock()
|
||||
defer WritingFileLock.Unlock()
|
||||
|
||||
if err = gulu.File.WriteFileSaferByReader(writePath, reader, 0644); nil != err {
|
||||
logging.LogErrorf("write file [%s] failed: %s", writePath, err)
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func WriteFileSafer(writePath string, data []byte) (err error) {
|
||||
WritingFileLock.Lock()
|
||||
defer WritingFileLock.Unlock()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue