【问题标题】:SFTP Upload using sshnet library - Handling Connection Issues使用 sshnet 库进行 SFTP 上传 - 处理连接问题
【发布时间】:2015-07-31 14:56:13
【问题描述】:

使用 Renci 的 sshnet 库,我无法在上传文件时处理连接问题。

如果我在 UploadFile 上设置断点,禁用我的连接并让它运行,它只会挂在该行上。这些可能是慢速连接上的大文件,因此添加 OperationTimeout 会很困难。

此外,这在一致的连接上一遍又一遍地工作得很好。有任何想法吗?谢谢!

AuthenticationMethod[] methods = new AuthenticationMethod[1];
methods[0] = new PasswordAuthenticationMethod(username, pwd);

var con = new ConnectionInfo(Config.RemoteHostName, username, methods);
con.Timeout = new TimeSpan(0, 0, 0, 30);
var client = new SftpClient(con);

client.Connect();

string fullFilePath = string.Format("{0}{1}", Config.RemoteFilePath, filename);
client.BufferSize = 15000;
client.UploadFile(new MemoryStream(buffer), fullFilePath);
client.Disconnect();

【问题讨论】:

  • 这有点受欢迎,所以我想添加评论。我升级到最新版本的 sshnet 库,所有超时问题都已解决。

标签: c# .net ssh sftp ssh.net


【解决方案1】:

传输文件时,SftpClient.OperationTimeout 确定库等待单个缓冲区读/写操作的时间(默认情况下最大为 64 KB,请参阅SftpClient.BufferSize)。不是等待整个传输完成的时间。

因此,您可以安全地将其从默认的“无限”更改为某个有意义的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2013-07-31
    • 2011-04-23
    • 2013-03-14
    • 1970-01-01
    相关资源
    最近更新 更多