From fdb0600dbbfeb4fe495e086645f80da5669587ed Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 1 Jan 2024 16:54:00 +0800 Subject: [PATCH] :art: Improve upload assets to cloud --- kernel/model/assets.go | 21 +++++++++++++-------- kernel/model/export.go | 4 ++-- kernel/sql/asset.go | 15 --------------- 3 files changed, 15 insertions(+), 25 deletions(-) diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 65267c8d5..f1050f960 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -514,12 +514,17 @@ func UploadAssets2Cloud(rootID string) (count int, err error) { return } - sqlAssets := sql.QueryRootBlockAssets(rootID) - err = uploadAssets2Cloud(sqlAssets, bizTypeUploadAssets) + tree, err := loadTreeByBlockID(rootID) if nil != err { return } - count = len(sqlAssets) + + assets := assetsLinkDestsInTree(tree) + err = uploadAssets2Cloud(assets, bizTypeUploadAssets) + if nil != err { + return + } + count = len(assets) return } @@ -529,17 +534,17 @@ const ( ) // uploadAssets2Cloud 将资源文件上传到云端图床。 -func uploadAssets2Cloud(sqlAssets []*sql.Asset, bizType string) (err error) { +func uploadAssets2Cloud(assetPaths []string, bizType string) (err error) { var uploadAbsAssets []string - for _, asset := range sqlAssets { + for _, assetPath := range assetPaths { var absPath string - absPath, err = GetAssetAbsPath(asset.Path) + absPath, err = GetAssetAbsPath(assetPath) if nil != err { - logging.LogWarnf("get asset [%s] abs path failed: %s", asset, err) + logging.LogWarnf("get asset [%s] abs path failed: %s", assetPath, err) return } if "" == absPath { - logging.LogErrorf("not found asset [%s]", asset) + logging.LogErrorf("not found asset [%s]", assetPath) continue } diff --git a/kernel/model/export.go b/kernel/model/export.go index 367b95b6d..fa91a029b 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -67,8 +67,8 @@ func Export2Liandi(id string) (err error) { return errors.New(Conf.Language(204)) } - sqlAssets := sql.QueryRootBlockAssets(id) - err = uploadAssets2Cloud(sqlAssets, bizTypeExport2Liandi) + assets := assetsLinkDestsInTree(tree) + err = uploadAssets2Cloud(assets, bizTypeExport2Liandi) if nil != err { return } diff --git a/kernel/sql/asset.go b/kernel/sql/asset.go index 332dfd850..66d619d55 100644 --- a/kernel/sql/asset.go +++ b/kernel/sql/asset.go @@ -115,21 +115,6 @@ func QueryAssetByHash(hash string) (ret *Asset) { return } -func QueryRootBlockAssets(rootID string) (ret []*Asset) { - sqlStmt := "SELECT * FROM assets WHERE root_id = ?" - rows, err := query(sqlStmt, rootID) - if nil != err { - logging.LogErrorf("sql query [%s] failed: %s", sqlStmt, err) - return - } - defer rows.Close() - for rows.Next() { - asset := scanAssetRows(rows) - ret = append(ret, asset) - } - return -} - func scanAssetRows(rows *sql.Rows) (ret *Asset) { var asset Asset if err := rows.Scan(&asset.ID, &asset.BlockID, &asset.RootID, &asset.Box, &asset.DocPath, &asset.Path, &asset.Name, &asset.Title, &asset.Hash); nil != err {