Ruby Net-SFTP没有响应
我正在尝试使用Net :: SFTP将文件上传到SFTP站点.
问题是Ruby进程永远不会返回.它被冻结,卡住,永无止境……我必须让Ctrl-C让它停下来. >我可以使用sftp在命令行中连接到ftp服务器. >来自宝石清单网: > net-sftp(2.0.5) >散列参数的不同组合(参见下面的代码) 调试输出来自:详细(最后几行): D,[2011-07-29T17:30:52.692192 #19399] DEBUG -- tcpsocket[80c06478]: read 36 bytes D,[2011-07-29T17:30:52.692609 #19399] DEBUG -- tcpsocket[80c06478]: received packet nr 7 type 99 len 12 I,[2011-07-29T17:30:52.692751 #19399] INFO -- net.ssh.connection.session[80bd5da0]: channel_success: 0 D,[2011-07-29T17:30:52.692817 #19399] DEBUG -- net.sftp.session[80bd5c24]: sftp subsystem successfully started D,[2011-07-29T17:30:52.693625 #19399] DEBUG -- tcpsocket[80c06478]: queueing packet nr 8 type 94 len 28 D,[2011-07-29T17:30:52.693834 #19399] DEBUG -- tcpsocket[80c06478]: sent 52 bytes 示例代码: require 'rubygems' require 'net/sftp' FTP = "someftpsite" FTP_USER_NAME = "user" FTP_PASSWORD = "password" hash = {:password => FTP_PASSWORD,:verbose => :debug,:keys=>[""],:auth_methods => ["password"],:timeout => 5,:port=>22} begin Net::SSH.start(FTP,FTP_USER_NAME,hash) do |test| test.sftp.upload!("localfile","remotefile") end rescue Exception => err puts "error:#{err.inspect}" end 编辑:2011年8月22日 这似乎与SFTP服务器的交互性有关.我通过使用expect创建一个shell脚本并从Ruby中运行来运行该文件来解决这个问题. shell脚本在运行时创建.这看起来真的很乱,但这是我能够使用Ruby工作的唯一方法.如果其他人有建议,我很乐意找到更好的方法来做到这一点. 解决方法
您可以使用公钥/私钥身份验证.
http://net-ssh.rubyforge.org/ssh/v1/chapter-2.html#s2
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |