2

我们目前正在使用 WinSCP 使用 SFTP 传输文件,但我们希望不必在两个 SFTP 服务器之间本地保存我们的文件。有没有办法让我的应用程序充当“中间人”而不在本地保存文件?例如,用户单击一个按钮,然后应用程序从 SFTP 服务器 A 抓取文件,然后将其传输到 SFTP 服务器 B,而无需我在其间将文件保存在本地。这是我正在使用或尝试使用的代码:

using (SftpClient clientSSA = new SftpClient(ConfigurationManager.AppSettings["SSA.IP"],
    ConfigurationManager.AppSettings["SSA.Username"],
    ConfigurationManager.AppSettings["SSA.Password"]))
{
    using (SftpClient clientTracker = new SftpClient(ConfigurationManager.AppSettings["Tracker.IP"],
        ConfigurationManager.AppSettings["Tracker.Username"],
        ConfigurationManager.AppSettings["Tracker.Password"]))
    {
        using (MemoryStream stream = new MemoryStream())
        {
            String remotePath = Path.Combine(@"D:\", "Wages", "wage_request.txt");
            String trackerPath = Path.Combine(@"D:\", "Wages", "wage_response_RENCI.txt");

            clientSSA.Connect();
            clientSSA.DownloadFile(remotePath, stream);

            clientTracker.Connect();
            clientTracker.UploadFile(stream, trackerPath);
        }
    }
}

如果 SSH.net 无法做到这一点,那么有什么组件可以让我这样做?

4

0 回答 0