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