SharpSsh:如果当前文件传输太慢,重新启动文件传输

本文关键字:传输 文件 重新启动 SharpSsh 如果 | 更新日期: 2023-09-27 18:03:47

我的代码从远程服务器下载一个文件到我们的服务器。

通常,一个文件最多需要大约一分钟才能完成下载。但有时下载需要超过5分钟。

如果当前下载需要5分钟以上的时间,是否有可能重新开始下载?

Tamir.SharpSsh.SshTransferProtocolBase sshCp;
sshCp = new Scp(sessionOptions.HostName, sessionOptions.UserName);
sshCp.Password = sessionOptions.Password;
sshCp.Connect();
foreach (UmtsFilesStruct u in Array)
{
    try
    {
        sshCp.Get(u.RemoteFilePath, u.LocalFilePath);
    }
    catch (Exception ex)
    {
        using (StreamWriter w = File.AppendText(Logger._LogName))
        {
            string error = string.Format("error downloading file [{0}], Remote: {1} & Local: {2} ",
                ex.Message, u.RemoteFilePath, u.LocalFilePath);
            Logger.Log(error, w);
        }
    }
}

SharpSsh:如果当前文件传输太慢,重新启动文件传输

您可以尝试使用System.Diagnostics.Stopwatch作为计时器。当timer.Elapsed >= TimeSpan.FromMinutes(5)关闭您的连接并再次运行您发布的代码时。如果文件下载时间少于1分钟,你一定不要忘记停止计时器并将其值重置为零,以防止文件实际下载时再次下载。

注:如果System.Diagnostics.Stopwatch有问题,您可以尝试System.Timers.Timer