LingxinMeng 10 月之前
父节点
当前提交
857bc0b62d

+ 8 - 4
aarch64/pjisuv/master/config/trigger_init.go

@@ -29,11 +29,15 @@ func InitTriggerConfig() {
 		triggerLocalDir := config.CloudConfig.TriggersDir + id + "/"
 		hasLabelSo, soPaths := util.CheckSoFilesInDirectory(triggerLocalDir)
 		var triggerLocalPath string
-		if hasIdDir && hasLabelSo { // 已存在的触发器不需要再次下载
+		if hasIdDir && hasLabelSo { // 已存在的触发器需要判断是否大小一致
 			triggerLocalPath = soPaths[0]
-			c_log.GlobalLogger.Info("触发器插件 ", triggerLocalPath, " 存在。")
-			triggerLocalPathsMapTriggerId[triggerLocalPath] = id
-			continue
+			ossSize, _ := util.GetOSSFileSize(config.OssBucket, trigger.TriggerScriptPath)
+			localSize, _ := util.GetFileSize(triggerLocalPath)
+			if ossSize == localSize {
+				c_log.GlobalLogger.Info("触发器插件 ", triggerLocalPath, " 存在且与云端触发器大小一致。")
+				triggerLocalPathsMapTriggerId[triggerLocalPath] = id
+				continue
+			}
 		}
 		label := util.GetFileNameWithoutExtension(config.CloudConfig.TriggersDir + trigger.TriggerScriptPath)
 		triggerLocalPath = config.CloudConfig.TriggersDir + id + "/" + label + ".so"

+ 2 - 2
aarch64/pjisuv/master/main.go

@@ -26,8 +26,8 @@ func init() {
 	commonConfig.InitPlatformConfig()
 	// 初始化ros节点
 	commonConfig.InitRosConfig()
-	// 发送资源占用信息
-	go commonConfig.SendResourceUsage()
+	//// 发送资源占用信息
+	//go commonConfig.SendResourceUsage()
 	// 维护data目录缓存的包数量
 	go commonService.BagCacheClean()
 	// 磁盘占用过高时根据缓存策略处理copy目录

+ 2 - 2
aarch64/pjisuv/slave/main.go

@@ -25,8 +25,8 @@ func init() {
 	commonConfig.InitPlatformConfig()
 	// 初始化ros节点
 	commonConfig.InitRosConfig()
-	// 发送资源占用信息
-	go commonConfig.SendResourceUsage()
+	//// 发送资源占用信息
+	//go commonConfig.SendResourceUsage()
 	// 维护data目录缓存的包数量
 	go commonService.BagCacheClean()
 	// 磁盘占用过高时根据缓存策略处理copy目录

+ 8 - 0
common/util/u_io.go

@@ -10,6 +10,14 @@ import (
 	"strings"
 )
 
+func GetFileSize(filePath string) (int, error) {
+	fileInfo, err := os.Stat(filePath)
+	if err != nil {
+		return 0, err
+	}
+	return int(fileInfo.Size()), nil
+}
+
 func CheckSoFilesInDirectory(dirPath string) (bool, []string) {
 	hasSoFile := false
 	soFilePaths := make([]string, 0)

+ 16 - 0
common/util/u_oss.go

@@ -3,6 +3,7 @@ package util
 import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 	"os"
+	"strconv"
 )
 
 // LimitUpload 限速上传
@@ -30,3 +31,18 @@ func LimitDownload(bucket *oss.Bucket, limitBit int64, ossObjectKey string, loca
 	}
 	return nil
 }
+
+func GetOSSFileSize(bucket *oss.Bucket, objectName string) (int, error) {
+	// 获取文件的元信息
+	attrs, err := bucket.GetObjectDetailedMeta(objectName)
+	if err != nil {
+		return 0, err
+	}
+
+	// 从元信息中获取文件大小
+	size, err := strconv.Atoi(attrs.Get("Content-Length"))
+	if err != nil {
+		return 0, err
+	}
+	return size, nil
+}