Ruby on rails 如何在Ruby中并行递归下载FTP文件夹?
我需要在ruby中本地缓存一个ftp文件夹。现在我用它来下载ftp文件夹,但是速度太慢了,你们知道有哪个库可以并行下载文件夹文件吗?Ruby on rails 如何在Ruby中并行递归下载FTP文件夹?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我需要在ruby中本地缓存一个ftp文件夹。现在我用它来下载ftp文件夹,但是速度太慢了,你们知道有哪个库可以并行下载文件夹文件吗? 谢谢 syncftp gem可能会帮助您: Ruby有一个像样的内置FTP库,以备您自己使用: 要并行下载文件,可以使用多个超时线程: 完成并行工作的一个好方法是赛璐珞,即并发框架: 尽管如此,如果下载速度仅限于您的总体网络带宽,那么这些方法都不会有多大帮助 在这种情况下,要加快传输速度,请确保只下载更改的信息:新文件和现有文件的更改部分 分段下载在某些情
谢谢 syncftp gem可能会帮助您: Ruby有一个像样的内置FTP库,以备您自己使用: 要并行下载文件,可以使用多个超时线程: 完成并行工作的一个好方法是赛璐珞,即并发框架: 尽管如此,如果下载速度仅限于您的总体网络带宽,那么这些方法都不会有多大帮助 在这种情况下,要加快传输速度,请确保只下载更改的信息:新文件和现有文件的更改部分 分段下载在某些情况下会带来巨大的加速,例如下载的大日志文件中只有一小部分文件发生了更改,这些更改都在文件末尾,并且都是附件 <>你也可以考虑在命令行中脱壳。有许多工具可以帮助您实现这一点。一个很好的通用工具是“curl”,它也支持FTP文件的简单范围,例如,您可以使用FTP获得文档的前100个字节,如下所示:
curl -r 0-99 ftp://www.get.this/README
rsync -auvC me@my.com:/remote/foo/ /local/foo/
除了FTP,您还接受其他协议吗?看看“rsync”命令,它非常适合下载同步。rsync命令有许多优化,只传输更改的数据。例如,rsync可以将远程目录同步到本地目录,如下所示:
curl -r 0-99 ftp://www.get.this/README
rsync -auvC me@my.com:/remote/foo/ /local/foo/
看一看。它是一个围绕Curl的包装器,可以并行地进行多个连接
这是以下内容的修改版本:
这将同时引入Ruby和Python源代码(这两个源代码都非常大,因此它们将花费大约一分钟的时间,具体取决于您的internet连接和主机)。直到最后一个块写入文件时,您才会看到任何文件出现。为什么必须用Ruby完成?有一些很好的、已经建立起来的工具,比如rsync,可以从Ruby内部调用。我最终不需要实现并行ftp下载,但最好使用rsync或Ruby内部的其他工具。