自动将新创建的文件上传到 SFTP 服务器

Automatically upload newly created files to an SFTP server

ASP.NET 应用程序(运行 on Windows server/IIS 7)必须将当前用户上传的大文件传输到外部 SFTP 服务器。由于文件大小,我们的想法是异步执行此操作。

想法是 ASP.NET 应用程序将上传的文件存储在 Windows 服务器的本地目录中。当前用户可以继续他的工作。 Windows 服务或 Quartz 作业(其他工具(*)/想法?)现在负责将文件传输到外部 SFTP 服务器。

(*) 是否存在侦听 Windows 目录更改然后将文件移动到 SFTP 服务器(包括处理通信 errors/retries)的现有工具?

如果没有现成的解决方案,您是否有过类似的需求?我们需要考虑什么?由于与 SFTP 服务器的连接不是很稳定,我们需要具有自动重试功能的优化错误处理。

要在 .NET 中监视本地目录中的更改,请使用 FileSystemWatcher class.


如果您正在寻找开箱即用的解决方案,请使用 keepuptodate command in WinSCP scripting

WinSCP脚本的一个简单例子(如watch.txt):

open sftp://username:password@host/
keepuptodate c:\local_folder_to_watch /remote_folder
exit

运行 脚本如下:

winscp.com /script=watch.txt

虽然这只适用于上传的文件保存在远程文件夹中的情况。

(我是WinSCP的作者)