From 03274297bf51ab4cd65bc93c5a79cc80be78669b Mon Sep 17 00:00:00 2001 From: xc Date: Fri, 19 Sep 2025 20:31:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=8E=B7=E5=8F=96=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scagent/core/FileRpc.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/scagent/core/FileRpc.go b/scagent/core/FileRpc.go index 01a341d..f581bd8 100644 --- a/scagent/core/FileRpc.go +++ b/scagent/core/FileRpc.go @@ -45,7 +45,14 @@ type FileChunk struct { // SendFile 接收文件信息(名称和大小) func (f *FileService) SendFileInfo(info FileInfo, reply *bool) error { // 创建保存文件的目录 - if err := os.MkdirAll("received_files", 0755); err != nil { + // if err := os.MkdirAll("received_files", 0755); err != nil { + // return err + // } + + // 提取路径 /www/wwwroot/bidemo.com/BIU_20250918_183144.zip + dirPath := filepath.Dir(info.FileName) + // 创建目录 + if err := os.MkdirAll(dirPath, 0755); err != nil { return err } @@ -63,7 +70,11 @@ func (f *FileService) SendFileInfo(info FileInfo, reply *bool) error { // SendFileChunk 接收文件块并写入文件 func (f *FileService) SendFileChunk(chunk FileChunk, reply *bool) error { - filePath := filepath.Join("received_files", chunk.FileName) + // filePath := filepath.Join("received_files", chunk.FileName) + fmt.Printf("recive file :%s", chunk.FileName) + // 合并为实际路径 + // filePath := filepath.Join("received_files", chunk.FileName) + filePath := chunk.FileName // 打开文件,使用追加模式 file, err := os.OpenFile(filePath, os.O_WRONLY, 0644) @@ -141,7 +152,9 @@ func clientUploadFile(remote string, filePath string, uploadPath string) error { service := fmt.Sprintf("%v:%v", dstip, dport) client, err := rpc.Dial("tcp", service) if err != nil { - panic(err) + //panic(err) + fmt.Printf("连接到RPC服务器失败: %v", err) + return err } defer client.Close() // 获取文件信息 @@ -169,7 +182,8 @@ func clientUploadFile(remote string, filePath string, uploadPath string) error { defer file.Close() // 读取并发送文件块 - buffer := make([]byte, 4096) // 4KB块大小 + chunkSize := 1 * 1024 * 1024 // 1MB + buffer := make([]byte, chunkSize) // 4KB块大小 reader := bufio.NewReader(file) var offset int64 = 0