node.js - 使本地文件夹与远程 FTP 文件夹保持同步

标签 node.js ftp sync rsync

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

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

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

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

最佳答案

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

关于node.js - 使本地文件夹与远程 FTP 文件夹保持同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956342/

相关文章:

java - 查看更改时出现错误 JSON 输入意外结束

javascript - 从 Create-React-App 联系表单发送电子邮件

java - FTP客户端问题

mysql - Express.js/Node.js 与 mysql

java - 将文件从 DCM4CHEE 移动到 FTP 服务器

java - Apache Commons Net FTPClient 中的文件名编码

android - 有没有人在 Android SyncObserver 上实现(或获得更多信息)

gradle - android studio 0.8.1:Gradle项目同步失败。基本功能(例如,编辑,调试)将无法正常运行

php - 使用 PHP 在两台服务器之间同步 MySQL 数据库

javascript - stub setTimeout 函数