1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-03-13 17:24:44 +08:00

fix: 解决 sftp 上传大文件失败的问题 (#1294)

This commit is contained in:
ssongliu 2023-06-08 18:58:15 +08:00 committed by GitHub
parent 95e1c73ced
commit 97774c88d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,8 +1,8 @@
package client
import (
"bufio"
"fmt"
"io"
"net"
"os"
"path"
@ -75,11 +75,18 @@ func (s sftpClient) Upload(src, target string) (bool, error) {
return false, err
}
defer dstFile.Close()
ff, err := io.ReadAll(srcFile)
if err != nil {
return false, err
reader := bufio.NewReaderSize(srcFile, 128*1024*1024)
for {
chunk, err := reader.Peek(8 * 1024 * 1024)
if len(chunk) != 0 {
_, _ = dstFile.Write(chunk)
_, _ = reader.Discard(len(chunk))
}
if err != nil {
break
}
}
_, _ = dstFile.Write(ff)
return true, nil
}