diff --git a/kernel/model/asset_content.go b/kernel/model/asset_content.go index 6a1e5cd55..8c762f274 100644 --- a/kernel/model/asset_content.go +++ b/kernel/model/asset_content.go @@ -444,9 +444,12 @@ func copyTempAsset(absPath string) (ret string) { return } + filelock.RWLock.Lock() + defer filelock.RWLock.Unlock() + ret = filepath.Join(dir, gulu.Rand.String(7)+".docx") - if err := filelock.Copy(absPath, ret); nil != err { - logging.LogErrorf("copy [%s] to [%s] failed: [%s]", absPath, ret, err) + if err := gulu.File.Copy(absPath, ret); nil != err { + logging.LogErrorf("copy [src=%s, dest=%s] failed: %s", absPath, ret, err) return } return diff --git a/kernel/model/assets_watcher.go b/kernel/model/assets_watcher.go index d56a81849..18771a62d 100644 --- a/kernel/model/assets_watcher.go +++ b/kernel/model/assets_watcher.go @@ -73,6 +73,11 @@ func watchAssets() { lastEvent = event timer.Reset(time.Millisecond * 100) + + if lastEvent.Op&fsnotify.Rename == fsnotify.Rename { + // 索引资源文件内容 + IndexAssetContent(lastEvent.Name) + } case err, ok := <-assetsWatcher.Errors: if !ok { return