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 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

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