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

时间:2015-02-06 08:34:01

标签: c# asp.net iis sftp windows-server

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

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

(*)是否有现有的工具可以监听Windows目录的更改,然后在SFTP服务器上移动文件(包括处理通信错误/重试)?

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

1 个答案:

答案 0 :(得分:1)

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


如果您正在寻找开箱即用的解决方案,请使用keepuptodate command中的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的作者)