我已经尝试了几个宝石,示例等,并且无法实现这一点,更有前途的宝石是: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)
任何不涉及外部命令的推荐?
感谢。
答案 0 :(得分:0)
我已经解决了这个问题,服务器在尝试使用Explicit tls连接到pasive模式时返回了一个私有IP地址,所以我在Double-Bag-FTPS中添加了一行来检查返回的ip是否是私有的回退到原来的公共IP地址......
因此,如果某人有同样的问题,也许这就是希望这可以帮助其他人:)