diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 78914d245..61e363621 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -292,41 +292,27 @@ const ( // uploadAssets2Cloud 将资源文件上传到云端图床。 func uploadAssets2Cloud(sqlAssets []*sql.Asset, bizType string) (err error) { - syncedAssets := readWorkspaceAssets() - var unSyncAssets []string - for _, sqlAsset := range sqlAssets { - if !gulu.Str.Contains(sqlAsset.Path, syncedAssets) && strings.Contains(sqlAsset.Path, "assets/") { - unSyncAssets = append(unSyncAssets, sqlAsset.Path) - } - } - - if 1 > len(unSyncAssets) { - return - } - var uploadAbsAssets []string - for _, asset := range unSyncAssets { + for _, asset := range sqlAssets { var absPath string - absPath, err = GetAssetAbsPath(asset) + absPath, err = GetAssetAbsPath(asset.Path) if nil != err { logging.LogWarnf("get asset [%s] abs path failed: %s", asset, err) return } if "" == absPath { logging.LogErrorf("not found asset [%s]", asset) - err = errors.New(fmt.Sprintf(Conf.Language(12), asset)) - return + continue } uploadAbsAssets = append(uploadAbsAssets, absPath) } + uploadAbsAssets = gulu.Str.RemoveDuplicatedElem(uploadAbsAssets) if 1 > len(uploadAbsAssets) { return } - uploadAbsAssets = gulu.Str.RemoveDuplicatedElem(uploadAbsAssets) - logging.LogInfof("uploading [%d] assets", len(uploadAbsAssets)) msgId := util.PushMsg(fmt.Sprintf(Conf.Language(27), len(uploadAbsAssets)), 3000) if loadErr := LoadUploadToken(); nil != loadErr { @@ -400,61 +386,11 @@ func uploadAssets2Cloud(sqlAssets []*sql.Asset, bizType string) (err error) { util.PushClearMsg(msgId) if 0 < len(completedUploadAssets) { - syncedAssets = readWorkspaceAssets() logging.LogInfof("uploaded [%d] assets", len(completedUploadAssets)) - for _, completedSyncAsset := range completedUploadAssets { - syncedAssets = append(syncedAssets, completedSyncAsset) - } - saveWorkspaceAssets(syncedAssets) } return } -func readWorkspaceAssets() (ret []string) { - ret = []string{} - confDir := filepath.Join(util.DataDir, "assets", ".siyuan") - if err := os.MkdirAll(confDir, 0755); nil != err { - logging.LogErrorf("create assets conf dir [%s] failed: %s", confDir, err) - return - } - confPath := filepath.Join(confDir, "assets.json") - if !gulu.File.IsExist(confPath) { - return - } - - data, err := os.ReadFile(confPath) - if nil != err { - logging.LogErrorf("read assets conf failed: %s", err) - return - } - if err = gulu.JSON.UnmarshalJSON(data, &ret); nil != err { - logging.LogErrorf("parse assets conf failed: %s, re-init it", err) - return - } - return -} - -func saveWorkspaceAssets(assets []string) { - confDir := filepath.Join(util.DataDir, "assets", ".siyuan") - if err := os.MkdirAll(confDir, 0755); nil != err { - logging.LogErrorf("create assets conf dir [%s] failed: %s", confDir, err) - return - } - confPath := filepath.Join(confDir, "assets.json") - - assets = gulu.Str.RemoveDuplicatedElem(assets) - sort.Strings(assets) - data, err := gulu.JSON.MarshalIndentJSON(assets, "", " ") - if nil != err { - logging.LogErrorf("create assets conf failed: %s", err) - return - } - if err = filelock.WriteFile(confPath, data); nil != err { - logging.LogErrorf("write assets conf failed: %s", err) - return - } -} - func RemoveUnusedAssets() (ret []string) { msgId := util.PushMsg(Conf.Language(100), 30*1000) defer func() { diff --git a/kernel/model/conf.go b/kernel/model/conf.go index ad8c22090..00c9a09dc 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -675,6 +675,7 @@ func clearWorkspaceTemp() { os.RemoveAll(filepath.Join(util.TempDir, "import")) os.RemoveAll(filepath.Join(util.TempDir, "repo")) os.RemoveAll(filepath.Join(util.TempDir, "os")) + os.RemoveAll(filepath.Join(util.DataDir, "assets", ".siyuan", "assets.json")) // 退出时自动删除超过 7 天的安装包 https://github.com/siyuan-note/siyuan/issues/6128 install := filepath.Join(util.TempDir, "install")