Кто-нибудь работает FTPS/FTP::TLS под Ruby 1.9.3?
Я пробовал несколько гемов, примеров и т. Д., И не могу заставить это работать, более многообещающие гемы: double-bag-ftps и FTPFXP, я могу подключиться, но не могу передавать файлы в активном или пассивном режиме.
Пример кода с помощью ftpfxp:
@conn2 = Net::FTPFXPTLS.new
@conn2.passive = true
@conn2.debug_mode = true
@conn2.connect('192.168.0.2', 990)
@conn2.login('myuser2', 'mypass2')
@conn2.chdir('/')
@conn2.get("data.txt")
@conn2.close
Пример кода с двойной сумкой:
ftps = DoubleBagFTPS.new
ftps.ssl_context = DoubleBagFTPS.create_ssl_context(:verify_mode => OpenSSL::SSL::VERIFY_NONE)
ftps.connect('192.168.0.2')
ftps.login('myuser2', 'mypass2')
ftps.chdir('/')
ftps.get("data.txt")
ftps.close
ошибка образца с двойной сумкой:
~/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/double-bag-ftps-0.1.0/lib/double_bag_ftps.rb:148:in `connect': Broken pipe - SSL_connect (Errno::EPIPE)
Пример ошибки с ftpfxp:
~/.rbenv/versions/1.9.3-p385/lib/ruby/1.9.1/net/ftp.rb:206:in `initialize': No route to host - connect(2) (Errno::EHOSTUNREACH)
Любая рекомендация, которая не включает внешние команды?
Благодарю.
1 ответ
Я решил проблему, сервер возвращал частный IP-адрес при попытке подключиться в пассивном режиме с помощью Explicit tls, поэтому я добавил строку в Double-Bag-FTPS, чтобы проверить, был ли возвращенный IP-адрес закрытым откатом к оригинальный публичный IP-адрес...
Так что, если у кого-то есть такая же проблема, возможно, это ответ, надеюсь, что это может помочь кому-то еще:)