[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

net/sftp 1.10 errors

Zach Dennis

2/14/2006 1:03:00 PM

I recently downloaded net/ssh 1.0.7 and net/sftp 1.1.0. But I get problems with ruby 1.8.2, 1.8.3 on
either windows, debian or ubuntu boxes.

require 'rubygems'
require 'net/sftp'

sftp_sess = Net::SFTP.start 'host', 'username', 'password'
sftp_sess.put_file '/home/uberriffic/test.txt', '/home/uberriffic/remote_test.txt'
NoMethodError: private method `open' called for #<Net::SFTP::Protocol::Driver:0xb7863790>
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/protocol/driver.rb:201:in
`method_missing'
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/operations/open.rb:27:in `perform'
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/operations/abstract.rb:64:in
`execute'
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/session.rb:253:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/session.rb:177:in `open_handle'
from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/sftp/session.rb:203:in `put_file'
from (irb):4
from :0

Do I need ruby 1.8.4? Thanks

Zach


2 Answers

Jamis Buck

2/14/2006 3:33:00 PM

0

On Feb 14, 2006, at 6:03 AM, zdennis wrote:

> I recently downloaded net/ssh 1.0.7 and net/sftp 1.1.0. But I get
> problems with ruby 1.8.2, 1.8.3 on either windows, debian or ubuntu
> boxes.
>
> require 'rubygems'
> require 'net/sftp'
>
> sftp_sess = Net::SFTP.start 'host', 'username', 'password'
> sftp_sess.put_file '/home/uberriffic/test.txt', '/home/uberriffic/
> remote_test.txt'
> NoMethodError: private method `open' called for
> #<Net::SFTP::Protocol::Driver:0xb7863790>
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/protocol/driver.rb:201:in `method_missing'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/operations/open.rb:27:in `perform'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/operations/abstract.rb:64:in `execute'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:253:in `method_missing'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:177:in `open_handle'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:203:in `put_file'
> from (irb):4
> from :0
>
> Do I need ruby 1.8.4? Thanks
>
> Zach

Zach,

Thanks for this report. I'm not sure yet what's going wrong here, but
I can duplicate the error on my machine and I'll look into it.

- Jamis



Jamis Buck

2/14/2006 3:37:00 PM

0

On Feb 14, 2006, at 6:03 AM, zdennis wrote:

> I recently downloaded net/ssh 1.0.7 and net/sftp 1.1.0. But I get
> problems with ruby 1.8.2, 1.8.3 on either windows, debian or ubuntu
> boxes.
>
> require 'rubygems'
> require 'net/sftp'
>
> sftp_sess = Net::SFTP.start 'host', 'username', 'password'
> sftp_sess.put_file '/home/uberriffic/test.txt', '/home/uberriffic/
> remote_test.txt'
> NoMethodError: private method `open' called for
> #<Net::SFTP::Protocol::Driver:0xb7863790>
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/protocol/driver.rb:201:in `method_missing'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/operations/open.rb:27:in `perform'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/operations/abstract.rb:64:in `execute'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:253:in `method_missing'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:177:in `open_handle'
> from /usr/lib/ruby/gems/1.8/gems/net-sftp-1.1.0/lib/net/
> sftp/session.rb:203:in `put_file'
> from (irb):4
> from :0

Here are two workarounds:

First, you can use a block to Net::SFTP.start:

Net::SFTP.start(...) do |sess|
sess.put_file(...)
end

Or, if you can't use the block format for whatever reason, be sure to
call #connect after calling start:

sess = Net::SFTP.start(...)
sess.connect
sess.put_file(...)

Not sure why that connect isn't being called automatically, but I'll
look into it.

- Jamis