使本地文件夹与远程 FTP 文件夹保持同步

Keep a local folder in sync with a remote FTP folder

我希望构建一个客户端节点应用程序,以使客户端计算机上的文件夹与远程 FTP 服务器上克隆的文件夹发生的任何更改保持同步。

我最初可以连接到服务器并下载所有文件,但我不确定如何跟踪文件更改。

我可以为该远程服务器上某处的所有文件和文件夹保留一个带有 filenames/checksums 的文件,这样我就可以知道何时需要重新下载文件。但是我不确定我将如何处理文件删除,也许如果文件名不再在服务器端哈希文件中我知道删除它。

我想我想问的是有没有更好的方法让本地和远程文件夹与 Nodejs 保持同步?

我通过在服务器上生成一个 "index" json 文件解决了这个问题,该文件列出了每个文件的路径及其大小和 md5 哈希值。然后我下载这个文件并对列表中的所有内容进行检查,我下载任何丢失的内容。然后我保存该索引文件的本地副本,然后下次我检查更新时,如果存在于我的本地索引文件中但不存在于远程索引文件中的任何内容都表明需要删除。在客户端散列大量文件(10GB~)非常慢,所以在第一次同步后我将散列的文件夹存储在索引文件中,然后我可以比较 local/remote 索引中的文件夹散列值,如果有差异然后我可以对这些文件夹中的单个文件进行昂贵的哈希处理。