2011-07-11 38 views
0

我發現了以下問題使用淨/ SFTP: 未定義的方法`put_file' for #<Net::SFTP::Session:0x00000001b40298> (NoMethodError)未定義的方法`put_file」爲#<淨:: SFTP ::會話:0x00000000b70138>(NoMethodError)

sftp.rb:17:in `block in <main>': undefined method `put_file' for #<Net::SFTP::Session:0x00000000b70138> (NoMethodError) 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:939:in `call' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:939:in `block in do_version' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:939:in `each' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:939:in `do_version' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:909:in `when_channel_polled' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/channel.rb:311:in `call' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/channel.rb:311:in `process' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:214:in `block in preprocess' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:214:in `each' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:214:in `preprocess' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:197:in `process' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:161:in `block in loop' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:161:in `loop' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-ssh-2.1.4/lib/net/ssh/connection/session.rb:161:in `loop' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:802:in `loop' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp/session.rb:787:in `connect!' 
    from /opt/ruby/lib/ruby/gems/1.9.1/gems/net-sftp-2.0.5/lib/net/sftp.rb:32:in `start' 
    from sftp.rb:16:in `<main>' 

但模塊可沒有問題加載:

2011.07.08|17:12:07~/lin/Ruby>irb 
irb(main):001:0> require 'net/ssh' 
=> true 
irb(main):002:0> require 'net/sftp' 
=> true 
irb(main):003:0> 

順便說一句,我是RUBYLIB:

2011.07.08|17:15:33~/lin/Ruby>echo $RUBYLIB 
/opt/ruby/lib/ruby/1.9.1/ 

謝謝! 丹

P.S:

require 'net/ssh' 
require 'net/sftp' 


    host="localhost" 
    src_file="/etc/services" 
    dst_file="~/services" 

    Net::SFTP.start(host, ENV["USER"]) do |sftp| 
    sftp.put_file(src_file, dst_file) 
    end 
...... 

回答

1

的Net :: SFTP does not have a put_file method。對於Net :: SFTP,請參見full documentation

您是否意思是sftp.uploadsftp.upload!

+0

不,我的意思是sftp.put_file方法。是否有可能出現RUBYLIB設置問題或其他問題? –

+0

但是在SFTP對象上沒有'put_file'方法。您是否正在關注可以鏈接到的示例? – Chowlett

1

檢查您的版本。 Net :: SFTP 2沒有put_file了。改爲使用upload

相關問題