ruby - 是否有易于使用的 Ruby FTP 库?

标签 ruby ftp

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

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

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

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

最佳答案

Ruby 的内置 OpenURI将处理 FTP。

来自 OpenURI 的文档:

OpenURI is an easy-to-use wrapper for net/http, net/https and 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易于使用,功能更多:

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

关于ruby - 是否有易于使用的 Ruby FTP 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5017248/

相关文章:

java - FTP 使用服务器中的文件和目录填充 jtree

http - 用于从文件服务器下载文件的协议(protocol)

ruby - ruby 方法返回值的最佳实践

windows - 我无法通过命令行连接和上传到 FTP

php - php curl 传输 FTP 后图像损坏

Android:如何下载 ftp 文件而不被损坏?

ruby - 在不安装的情况下使用 gem

ruby - Rails s 不启动服务器,没有错误消息

mysql - 多个 Rails 应用程序读取另一个 Rails 应用程序的单个数据库/表

ruby-on-rails - Ruby on Rails 上的 Gem Seer 和 Ajax