2

我正在尝试将文件从 unix 盒子下载到内存缓冲区,然后将文件上传到另一个 unix 盒子,但是当我尝试下载文件时,它会询问我的密码然后即使我把它放进去也会失败。我都试过了:

data = Net::SCP.download!("remote.host.com", "username", "/remote/path", :password => password)

data = Net::SCP::download!("remote.host.com", "username", "/remote/path", :password => password)

但我得到:

Active Directory Password:

然后当我输入密码时:

Net::SCP::Error: SCP did not finish successfully (1)

ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32] net-scp (1.0.4)

4

2 回答 2

3

尝试像这样使用它:

require 'net/scp'

data = nil
Net::SCP.start("remote.host.com", "username", :password => "password") do |scp|
  data = scp.download!("/remote/path")
end

puts data

编辑:我只在 ruby​​ ruby​​-1.9.3 上试过这个,对不起

于 2013-05-01T15:43:53.650 回答
1

看起来 Net::SFTP 将是我实际要使用的,它不多,而且可能是我最终会得到的,因为我没有意识到我需要@data在将它放在另一个上之前“写”服务器。

data = nil
Net::SFTP.start('remoteHost1', 'username', :password => 'password') do |sftp|
  data = sftp.download!("filepath1")
end

Net::SFTP.start('remoteHost2', 'username', :password => 'password') do |sftp|
  sftp.file.open("filePath2", "w") do |f|
    f.puts data
  end
end
于 2013-05-01T17:15:44.610 回答