From 7342185782fec53480caeba8e047d01b35927bec Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期一, 17 六月 2024 09:13:01 +0800
Subject: [PATCH] watch preloads file to autoload
---
service/process.go | 29 ++++++++++++++++++++++++-----
controllers/audio.go | 1 +
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/controllers/audio.go b/controllers/audio.go
index c1b2c2f..f2d410c 100644
--- a/controllers/audio.go
+++ b/controllers/audio.go
@@ -209,6 +209,7 @@
SetEndTime(params.EndTime).
SetIsFollowed(params.IsFollowed).
SetAudioStatusList(params.StatusList).
+ SetOrder("created_at desc").
Find()
if err != nil {
diff --git a/service/process.go b/service/process.go
index 1c08e55..0b67c93 100644
--- a/service/process.go
+++ b/service/process.go
@@ -175,10 +175,12 @@
if err != nil {
log.Fatal(err)
}
+FOR:
for {
select {
case <-cxt.Done():
fmt.Println("preload stop")
+ break FOR // 閫�鍑哄惊鐜�
case event, ok := <-watcher.Events:
if !ok {
continue
@@ -186,11 +188,14 @@
if event.Op&fsnotify.Create == fsnotify.Create {
// 鍒ゆ柇鏂囦欢绫诲瀷鏄惁涓�.mp3鎴�.wav
if filepath.Ext(event.Name) == ".mp3" || filepath.Ext(event.Name) == ".wav" {
+ time.Sleep(time.Second * 1)
+ //璁剧疆鏂囦欢璁块棶鏉冮檺
+ err = os.Chmod(event.Name, 0777)
+ if err != nil {
+ logx.Errorf(fmt.Sprintf("%s:%s", event.Name, "璁剧疆鏂囦欢鏉冮檺澶辫触"))
+ }
// 鏂囦欢鍚�
fileName := filepath.Base(event.Name)
- // 鏂囦欢澶у皬
- bs, _ := os.ReadFile(event.Name)
- size := len(bs)
//鏍¢獙鏂囦欢鍛藉悕
arr := strings.Split(fileName, "_")
if len(arr) != 6 {
@@ -211,16 +216,30 @@
}
//灏嗘枃浠剁Щ鍔ㄥ埌uploads鏂囦欢澶逛笅
- src := conf.LocalConf.StorePath + "/" + fileName
+ //鍒ゆ柇storePath涓湯灏炬槸鍚﹀甫
+ var src string
+ if strings.HasSuffix(conf.LocalConf.StorePath, "/") {
+ src = conf.LocalConf.StorePath + fileName
+ } else {
+ src = conf.LocalConf.StorePath + "/" + fileName
+ }
err = os.Rename(event.Name, src)
if err != nil {
logx.Errorf(fmt.Sprintf("%s:%s", fileName, "绉诲姩鏂囦欢澶辫触"))
continue
}
+ // 璇诲彇鏂囦欢澶у皬
+ fileInfo, err := os.Stat(src)
+ if err != nil {
+ logx.Errorf(fmt.Sprintf("%s:%s", fileName, "鑾峰彇鏂囦欢澶у皬澶辫触"))
+ continue
+ }
+ size := fileInfo.Size()
+ fmt.Println("fileName:", fileName, "size:", size, "src1", src)
audio := &models.Audio{
Name: fileName,
- Size: int64(size),
+ Size: size,
FilePath: src,
AudioStatus: constvar.AudioStatusUploadOk,
LocomotiveNumber: arr[0],
--
Gitblit v1.8.0