Существует ли простая в использовании библиотека FTP для Ruby? - PullRequest
4 голосов
/ 16 февраля 2011

Существует ли высокоуровневая библиотека Ruby для взаимодействия с FTP-сервером?

Вместо Net :: HTTP я могу использовать HTTParty, Curb, Rest Client или Typhoeus, что делает все проще, но яне могу найти аналогичные решения для замены / улучшения Net :: FTP.

Более конкретно, я ищу:

  • минимальных линий для подключения к серверу.Например, логин должен быть явно указан с Net :: FTP
  • возможностью перебирать все записи в одной папке, либо с помощью glob, либо просто рекурсивно.
  • возможность получить все возможныеинформация, такая как тип записи, размер, время mtime без анализа возвращаемых строк вручную.

Ответы [ 2 ]

6 голосов
/ 17 февраля 2011

Встроенный в 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 прост в использовании с гораздо большей функциональностью:

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
4 голосов
/ 12 ноября 2011

Вы пробовали EventMachine?https://github.com/schleyfox/em-ftp-client

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...