LingxinMeng 9 mēneši atpakaļ
vecāks
revīzija
50ccac3218

+ 29 - 6
aarch64/pjibot_guide/common/service/rosbag_upload.go

@@ -8,6 +8,7 @@ import (
 	"cicv-data-closedloop/common/entity"
 	"cicv-data-closedloop/common/util"
 	"fmt"
+	"io/fs"
 	"os"
 	"path/filepath"
 	"strings"
@@ -157,13 +158,35 @@ outLoop:
 		}
 
 		// 额外采集data目录
-		err = util.ZipDir(commonConfig.CloudConfig.DataDir.Src, commonConfig.CloudConfig.DataDir.Dest, commonConfig.CloudConfig.DataDir.Exclude)
+		//err = util.ZipDir(commonConfig.CloudConfig.DataDir.Src, commonConfig.CloudConfig.DataDir.Dest, commonConfig.CloudConfig.DataDir.Exclude)
+		//if err != nil {
+		//	c_log.GlobalLogger.Error("压缩data目录失败:", err)
+		//}
+		var filePaths []string                                                                                           // 初始化一个切片来保存文件路径
+		err = filepath.WalkDir(commonConfig.CloudConfig.DataDir.Src, func(path string, d fs.DirEntry, err error) error { // 使用filepath.WalkDir遍历目录
+			if err != nil {
+				return err // 如果有错误,返回错误
+			}
+
+			// 检查是否为文件(跳过目录)
+			if !d.IsDir() {
+				filePaths = append(filePaths, path) // 将文件路径添加到切片中
+			}
+			return nil
+		})
 		if err != nil {
-			c_log.GlobalLogger.Error("压缩data目录失败:", err)
+			c_log.GlobalLogger.Error("扫描 data 目录失败:", err)
+			goto outLoop
 		}
-		err = commonConfig.OssBucket.PutObjectFromFile(objectKey3+"data.zip", commonConfig.CloudConfig.DataDir.Dest)
-		if err != nil {
-			c_log.GlobalLogger.Error("上传 data 目录压缩文件失败:", err)
+
+		// 不压缩上传所有文件
+		for _, path := range filePaths {
+			relativePath := strings.Replace(path, commonConfig.CloudConfig.DataDir.Src, "", 1)
+			err = commonConfig.OssBucket.PutObjectFromFile(objectKey3+"data/"+relativePath, commonConfig.CloudConfig.DataDir.Dest)
+			if err != nil {
+				c_log.GlobalLogger.Error("上传 data 目录压缩文件失败:", err)
+				goto outLoop
+			}
 		}
 		commonConfig.OssMutex.Unlock()
 
@@ -171,7 +194,7 @@ outLoop:
 		c_log.GlobalLogger.Infof("结束处理窗口,【Lable】=%v,【FaultTime】=%v,【Length】=%v", currentTimeWindow.Labels, currentTimeWindow.FaultTime, currentTimeWindow.Length)
 		c_log.GlobalLogger.Infof("待处理窗口个数为:%v", len(entity.TimeWindowConsumerQueue))
 		if err = util.RemoveDir(dir); err != nil {
-			continue outLoop
+			goto outLoop
 		}
 		if len(entity.TimeWindowConsumerQueue) == 0 {
 			c_log.GlobalLogger.Infof("已处理所有窗口,重启 record 命令。")

+ 1 - 1
aarch64/pjibot_guide/引导机器人默认配置文件-cloud-config.yaml

@@ -17,7 +17,7 @@ disk:
   name: /dev/mmcblk0p8 # 磁盘名称
   used: 20000000000 # 磁盘占用阈值,单位bytes
 data-dir:
-  src: /root/pjirobot/data # 需要额外采集的 data 目录
+  src: /root/pjirobot/data/ # 需要额外采集的 data 目录
   dest: /root/pjirobot/data.zip # 需要额外采集的 data 目录压缩之后的包
   exclude: /root/pjirobot/data/cicv-data-closedloop # 采集data目录时排除的子目录
 map-buf-files: