如何在多个任务上使用相同的SFTP连接?
我有许多类文件,它们执行一些任务,例如本例中的一些任务,它们从不同的目录检索数据并处理数据。
我想要做的是拥有一个“ global" sftp connection
”,我可以使用它来从SFTP检索数据。
我想要做的是,如果它试图获取SFTP并且它是“ closed/no connection/timeout"
,我希望它创建一个新的连接。
我该如何实现?下面是我正在执行的任务之一的示例。
private async Task<data> ReadDataAsync(string filePath)
{
var data= new data();
using (var sftp = new SftpClient(_host, _username, _password))
{
sftp.Connect();
try
{
using (var fs = sftp.OpenRead(filePath))
{
using (var r= new StreamReader(fs))
{
data = await ParseDataFromFile(r);
}
}
}
catch (Exception e)
{
Console.WriteLine("An exception has been caught " + e.ToString());
}
finally
{
sftp.Disconnect();
}
}
return data ;
}
答案 0 :(得分:0)
这是包装SFTPClient并将其注入所需位置的好帖子:
https://medium.com/cheranga/implementing-an-sftp-wrapper-using-ssh-net-f85ac8f38e5f