🎨 Improve upload assets to cloud

This commit is contained in:
Daniel 2024-01-01 16:54:00 +08:00
parent b9f1da33f0
commit fdb0600dbb
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 15 additions and 25 deletions

View file

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

View file

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

View file

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