Ruby有一个易于使用的FTP库吗?

是否有与FTP服务器交互的高级Ruby库?

而不是Net :: HTTP我可以使用HTTParty,Curb,Rest Client或Typhoeus,这使一切变得更容易,但我找不到任何类似的解决方案来替换/增强Net :: FTP。

更具体地说,我正在寻找:

  • 最小的连接到服务器的行。 例如,必须使用Net :: FTP显式指定login
  • 能够迭代一个文件夹中的所有条目,或使用glob,或者只是递归地。
  • 能够获得所有可能的信息,例如条目类型,大小,mtime,而无需手动解析返回的行。

Ruby的内置Open-URI将处理FTP。

来自Open-URI的文档:

OpenURI是一个易于使用的net / http,net / https和net / ftp包装器。

这在检索Ruby源时似乎会挂起,但应该在一两分钟后返回。

require 'open-uri' open('ftp://ftp.ruby-lang.org//pub/ruby/ruby-1.9.2-p136.tar.bz2') do |fi| File.open('ruby-1.9.2-p136.tar.bz2', 'wb') do |fo| fo.puts fi.read end end 

或者, Net :: FTP易于使用,具有更多function:

 require 'net/ftp' Net::FTP.open('ftp.ruby-lang.org') do |ftp| ftp.login ftp.chdir('/pub/ruby') puts ftp.list('ruby-1.9.2*') puts ftp.nlst() ruby_file = 'ruby-1.9.2-p136.tar.bz2' ftp.getbinaryfile(ruby_file, ruby_file, 1024) end 

你试过EventMachine吗? https://github.com/schleyfox/em-ftp-client