🎨 Support local file system sync & backup (#13663)

* 🎨 Use local file system sync & backup

* ⬆️ dejavu

* 🎨 Add the settings panel of local file system sync & backup

* 📝 Update user guides of local file system sync & backup

* 🎨 Adjust supported runtime environments
This commit is contained in:
Yingyi / 颖逸 2024-12-31 21:06:13 +08:00 committed by GitHub
parent 0386bc9ebd
commit 6ee4705e2a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 408 additions and 32 deletions

View file

@ -667,6 +667,45 @@ func setSyncProviderWebDAV(c *gin.Context) {
}
}
func setSyncProviderLocal(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)
arg, ok := util.JsonArg(c, ret)
if !ok {
return
}
localArg := arg["local"].(interface{})
data, err := gulu.JSON.MarshalJSON(localArg)
if err != nil {
ret.Code = -1
ret.Msg = err.Error()
ret.Data = map[string]interface{}{"closeTimeout": 5000}
return
}
local := &conf.Local{}
if err = gulu.JSON.UnmarshalJSON(data, local); err != nil {
ret.Code = -1
ret.Msg = err.Error()
ret.Data = map[string]interface{}{"closeTimeout": 5000}
return
}
err = model.SetSyncProviderLocal(local)
if err != nil {
ret.Code = -1
ret.Msg = err.Error()
ret.Data = map[string]interface{}{"closeTimeout": 5000}
return
}
ret.Data = map[string]interface{}{
"local": local,
}
}
func setCloudSyncDir(c *gin.Context) {
ret := gulu.Ret.NewResult()
defer c.JSON(http.StatusOK, ret)