我需要监视远程服务器上的文件夹,并将使用SFTP添加的新文件复制到Windows上的本地文件夹。是否有可以配置和计划监视远程文件夹并自动复制文件的SFTP客户端?或者我是否必须使用某些第三方SFTP库编写Windows服务才能完成此操作?
谢谢。
答案 0 :(得分:1)
可以通过两种方式从SFTP服务器复制文件
创建自定义.net服务以监控SFTP服务器上的文件夹,并使用第三方SFTP客户端库复制文件。以下是一些可用的库。
一个。 CodePlex上的开源库SSH.Net
湾Rebex SFTP for .Net
C。 .Net的终极SSH专家包
安装能够监控文件夹和计划任务的第三方SFTP客户端。以下是一些似乎具有这些功能的客户端工具
一个。 CrushFTP
湾JaSFtp
答案 1 :(得分:0)
实现此目的的最简单方法是编写一个客户端程序,该程序以编程方式连接到SFTP服务器,并确定服务器上是否存在新文件。程序如何确定是否存在新文件可以通过使用文件名和远程文件的时间戳来完成。
她的明显困难是,您不希望从服务器上下载正在服务器计算机上写入磁盘的文件。 (大文件可能会出现此问题并且您最终可能会下载不完整的文件,从而导致数据损坏)。避免这种情况的一种方法是在当天的特定时间运行SFTP客户端,确保服务器上的远程目录中没有写入新文件。
要创建自运行客户端,您可以使用.NET Framework创建按所需计划运行的计时器。或者,您只需编写在C#程序中检测远程文件的代码,而无需担心计时器,并使用Windows计划任务功能以特定时间间隔执行生成可执行文件。
由于您尚未提及是否要使用.NET Framework,因此可以使用您选择的任何编程语言。我建议您使用您选择的第三方库来使用C#或Java。如果您正在寻找商业图书馆,请考虑Ssh Factory for .NET或Secure FTP Factory。可以找到文档here和here。