修复: SFTP连接首拉不显示与传输挂起
- watcher握手期伪触发致幻影本地列表,根因修复 - 连接探测2.5s超时竞速,握手10s预算 - 30s保活自动掐死半开连接,取连接时剔除已断开 - 副本命名与进度计数抽公共,下载缓存清理去重
This commit is contained in:
+18
@@ -2,6 +2,8 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -124,6 +126,22 @@ func (a *App) SftpDownloadToTempCached(connID string, remotePath string, fileSiz
|
||||
return a.ensureSftpService().DownloadToTempCached(connID, remotePath, fileSize, modTime)
|
||||
}
|
||||
|
||||
// SftpDownloadToFile 下载远程文件/目录到用户指定目录(流式无上限,重名自动副本),返回本地落地路径
|
||||
func (a *App) SftpDownloadToFile(connID string, remotePath string, localDstDir string) (string, error) {
|
||||
emitter := newTransferEmitter(a, "download", path.Base(remotePath))
|
||||
localPath, err := a.ensureSftpService().DownloadToFile(connID, remotePath, localDstDir, emitter.progress)
|
||||
emitter.finish(err)
|
||||
return localPath, err
|
||||
}
|
||||
|
||||
// SftpUploadFromFile 上传本地文件/目录到远程目录(流式,目录递归,重名自动副本)
|
||||
func (a *App) SftpUploadFromFile(connID string, localPath string, remoteDir string) error {
|
||||
emitter := newTransferEmitter(a, "upload", filepath.Base(localPath))
|
||||
err := a.ensureSftpService().UploadFromFile(connID, localPath, remoteDir, emitter.progress)
|
||||
emitter.finish(err)
|
||||
return err
|
||||
}
|
||||
|
||||
// SftpGetCommonPaths 获取 SFTP 远程主机常用路径
|
||||
func (a *App) SftpGetCommonPaths(connID string) (map[string]string, error) {
|
||||
return a.ensureSftpService().GetCommonPaths(connID)
|
||||
|
||||
Reference in New Issue
Block a user