加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:52:14 所属栏目:百科 来源:网络整理
导读:是否有与FTP服务器交互的高级 Ruby库? 而不是Net :: HTTP我可以使用HTTParty,Curb,Rest Client或Typhoeus,这使一切变得更容易,但我找不到任何类似的解决方案来替换/增强Net :: FTP. 更具体地说,我正在寻找: 连接到服务器的最小行数.例如,必须使用Net :: FT
是否有与FTP服务器交互的高级 Ruby库?

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

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

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

解决方法

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

来自Open-URI的文档:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读