Browse Source

增加rpc上传功能

master
xyiege 3 months ago
parent
commit
8a3da18d80
  1. 40
      scagent/core/FileRpc.go

40
scagent/core/FileRpc.go

@ -0,0 +1,40 @@
package core
import (
"io"
"os"
)
// FileService 提供文件传输服务
type FileService struct{}
// FileChunk 表示文件分片
type FileChunk struct {
FileName string // 文件名
Data []byte // 数据分片
Offset int64 // 偏移量,用于重组
IsLast bool // 是否为最后一个分片
}
// Upload 接收文件分片并写入到本地文件
func (f *FileService) Upload(chunk FileChunk, reply *bool) error {
// 打开或创建文件,使用追加模式
file, err := os.OpenFile(chunk.FileName, os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
return err
}
defer file.Close()
// 移动到指定偏移量
if _, err := file.Seek(chunk.Offset, io.SeekStart); err != nil {
return err
}
// 写入数据
if _, err := file.Write(chunk.Data); err != nil {
return err
}
*reply = true
return nil
}
Loading…
Cancel
Save