我正在从几台(S)FTP服务器下载每日文件。这些服务器不是我管理的,我已被外部人员授予访问权限。
文件在一天中的不同时间到达。因此,我不能事先不知道何时必须发送提取请求。
是否有一种聪明的方法来设置侦听器以跟踪这些SFTP服务器上的更改?例如,某种ping会返回服务器的最新更新时间戳。
首先,FTP和SFTP是两个完全不相关的协议。因此,在一个问题中同时要求两者都没有道理。无论如何,两者的答案实际上几乎相同。
FTP或SFTP协议都没有任何机制可将更改通知客户端。
他们甚至无法报告请求的更改。
您所要做的就是定期列出服务器上的所有文件,并将该列表与以前的结果进行比较。
通过使用按时间戳排序的列表,使用FTP,可以稍微优化”。这样,特别是如果文件夹中有很多文件,一旦获得所有新文件,就可以中止列表下载。尽管要求排序列表是非标准功能,但得到了广泛支持。参见How to get files in FTP folder sorted by modification time。
如果您控制服务器(机器,而不是软件),则可以在那里建立服务以提供所需的信息。但这与SFTP / FTP无关。而且由于您不控制服务器,因此也不相关。