Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 on rails `调度请求';:Net::SFTP.upload期间没有此类请求_Ruby On Rails_Ruby_Sftp_Net Sftp - Fatal编程技术网

Ruby on rails `调度请求';:Net::SFTP.upload期间没有此类请求

Ruby on rails `调度请求';:Net::SFTP.upload期间没有此类请求,ruby-on-rails,ruby,sftp,net-sftp,Ruby On Rails,Ruby,Sftp,Net Sftp,我正在使用Net::SFTP将文件上载到服务器。代码如下: uri = URI.parse('sftp://host.org') io = StringIO.new(csv_string) timeout 120 do Net::SFTP.start(uri.host,ENV['SFTP_USER'],:password=>ENV['SFTP_PASS'],:port=>22) do |sftp| sftp.upload(io, "/ftpguest/Medstro/"

我正在使用Net::SFTP将文件上载到服务器。代码如下:

uri = URI.parse('sftp://host.org')
io = StringIO.new(csv_string)
timeout 120 do
  Net::SFTP.start(uri.host,ENV['SFTP_USER'],:password=>ENV['SFTP_PASS'],:port=>22)  do |sftp|
    sftp.upload(io, "/ftpguest/Medstro/" + file_name)
  end
end
当我运行代码时,它成功地连接到主机并上载一个具有正确文件名的零字节文件。然后抛出以下异常:

lib/ruby/gems/2.3.0/gems/net-sftp-2.1.2/lib/net/sftp/session.rb:947:in `dispatch_request': no such request `403046400' (Net::SFTP::Exception)
文件内容没有上传,我只是得到一个零字节的文件。我在谷歌上找不到任何东西。有人知道如何解决这个问题吗


仅供参考,我可以使用WinSCP很好地上传文件。

将net ssh gem更新为4.0.1版解决了此问题。

今天遇到了此问题。请确保指定服务器使用的sftp版本。您可以在sftp服务器的外壳上运行
version
,以了解:

sftp> version
SFTP protocol version 3
然后将其传递给
Net::SFTP#start
,如下所示:

Net::SFTP.start(host, user, { password: password, port: port }, { version: version })