用于节点的FTP模块.js可以同步文件
FTP module for Node.js that can sync files?
我正在寻找一个用于 Node 的模块.js - 最好通过 npm 获得,它可以与 FTP 服务器同步文件。ftp模块具有所有基本功能,但是在其上编写一个完整的同步系统似乎需要做很多工作。
我是jsftp的作者。只需浏览要上传的目录,就应该很容易通过它进行同步。Jsftp 可以处理并行的被动请求(在内部它们仍然是顺序的,但您不必担心),因此您只需使用顺序ftp.put
调用,它应该无需太多脚本工作即可工作。
在 node 中更好和更惯用的是使用尚未记录的 ftp.getPutSocket
方法,它允许您获取原始PASV
套接字并推送到其中(例如使用流)。对于这种情况的特定示例,您可以查看 vfs-ftp 是如何做到的。
如果您需要有关实现同步的更多帮助,请随时与我联系。
我通过搜索npm,github和网络做了一些研究,但找不到任何好看的同步解决方案。
我只是通过使用一些好的ftp库来编写我自己的(简单的)同步库。就我个人而言,我认为jsftp是最有吸引力的(http://sergi.github.com/jsftp/)。只需将jsftp与一些文件系统行走相结合 - 特别是如果您对简单的单向同步感到满意,这应该不是不可能做到的。
实现的一些想法(从本地文件系统到ftp的单向同步):
- 打开与 FTP 服务器的连接
- 使用
fs.readdir
遍历本地文件系统 - 从相应的ftp文件中获取统计信息,如果本地版本较新,则上传(如果使用
jsftp
,则Ftp.ls
和Ftp.put
)
或者,问问自己是否真的需要与node.js执行同步?例如,如果您可以在系统中运行Python脚本,则可以简单地使用ftpsync2d
,这是一种支持ftp的双向同步工具(http://code.google.com/p/ftpsync2d/)。
看看 node-ftpsync 和 grunt-ftpsync
它利用Sergi的jsftp库将文件智能同步到远程服务器。
注意:目前,除了基于时间戳的更新比较外,推送支持所需的所有内容都已实现。目前,更新是通过单独比较文件大小来确定的。
node-ftpsync 提供 CLI 支持和编程 API。首选解决方案是全局安装它并在包含 config.json 的目录中运行它。或者,它也作为库实现,可以在代码中轻松配置、扩展和启动。
grunt-ftpsync 的工作方式相同,除了配置和运行应用程序是通过 grunt 完成的。它甚至可以输出花哨的彩色日志。
免责声明:我是node-ftpsync和grunt-ftpsync的作者
- 拖放文件上传无需AJAX,在前台同步
- jQuery/JS:从服务器同步读取文本文件
- Chrome扩展程序,用于将文件与USB驱动器同步
- 是否有一种方法可以在节点中同步执行多个JavaScript文件
- grunt:观察并同步文件
- 节点尝试在同步写入完成之前读取文件
- 如何在节点.js中同步读取文件或流
- 用于节点的FTP模块.js可以同步文件
- 文件的同步哈希函数
- Cordova应用程序自动同步/更新Web内容(.js文件),如果更新版本可用,否则使用缓存版本
- Javascript 同步加载表文件
- Gulp 浏览器同步放置文件夹的位置
- 节点应用.js - 同步读取文件
- 如何从节点.js中的URL同步下载文件
- 将 JSON 文件读取到对象的全局数组中 - 范围和同步问题
- Chrome同步文件系统和应用程序ID
- IntelliJ,在grunt构建后同步文件
- fs.writeFileSync给出了错误:UNKNOWN,正确的方法使同步文件在nodejs中写入
- 同步文件API的工人,示例/教程
- 在web中同步文件系统API