Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Net::SCP下载请求密码但失败_Ruby - Fatal编程技术网

Ruby Net::SCP下载请求密码但失败

Ruby Net::SCP下载请求密码但失败,ruby,Ruby,我试图将文件从unix设备下载到内存缓冲区,然后将文件上载到另一个unix设备,但当我尝试下载文件时,它会询问我的密码,即使我将其放入,也会失败。我两个都试过了: data = Net::SCP.download!("remote.host.com", "username", "/remote/path", :password => password) 及 但我得到: Active Directory Password: 然后,当我输入密码时: Net::SCP::Error: SCP

我试图将文件从unix设备下载到内存缓冲区,然后将文件上载到另一个unix设备,但当我尝试下载文件时,它会询问我的密码,即使我将其放入,也会失败。我两个都试过了:

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)

试着这样使用它:

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-1.9.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-1.9.3上试过这个,很抱歉,

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

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

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

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

传入
:verbose=>true
并查看发生了什么与以前相同的结果,感谢您的回复!我已经探索了一个使用Net::SFTP的解决方案,但我仍然很好奇为什么Net::SCP不起作用。请传入
:verbose=>true
,然后查看发生了什么与以前相同的结果,感谢您的回复!我已经探索了一个使用Net::SFTP的解决方案,但我仍然很好奇为什么Net::SCP不起作用。这确实起作用,它看起来与我使用Net::SFTP开发的解决方案完全相同,这很有趣。但是,当我想在服务器上上传该文件时,SCP将无法像SFTP那样执行,我必须执行
SFTP.file.open(“filepath”,“w'){f | f.puts data end}
SCP没有
。文件
是的,SFTP可能是您想要做的正确的事情。这确实有效,它看起来与我使用Net::SFTP开发的解决方案完全相同,这很有趣。但是,当我想在服务器上上传该文件时,SCP将无法像SFTP那样执行,我必须执行
SFTP.file.open(“filepath”,w'){f | f.puts data end}
SCP没有
。文件
是的,SFTP可能是您想要执行的操作的正确选择