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

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

问题描述:

ASP.NET应用程序(在Windows服务器/ IIS 7上运行)必须将当前用户上传的大文件传输到外部SFTP服务器。由于文件的大小,这个想法是异步执行的。自动将新创建的文件上传到SFTP服务器

这个想法是ASP.NET应用程序将上传的文件存储在Windows服务器的本地目录中。当前用户可以继续他的工作。 Windows服务或Quartz作业(其他工具(*)/想法?)现在负责将文件传输到外部SFTP服务器。 (*)是否存在侦听Windows目录更改然后移动SFTP服务器上的文件(包括处理通信错误/重试)的工具?

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

要注意.NET中本地目录的更改,请使用 FileSystemWatcher class


如果你正在寻找一个开箱即用解决方案,使用WinSCP scriptingkeepuptodate command

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

open sftp://username:[email protected]/ 
keepuptodate c:\local_folder_to_watch /remote_folder 
exit 

运行脚本等:

winscp.com /script=watch.txt 

虽然这只有,如果上传文件在远程文件夹保存。

(我的WinSCP的作者)

+0

感谢您的巨大投入! – levis 2015-02-09 10:44:57