Net :: SCP文件上传为空

时间:2013-10-21 21:04:03

标签: ruby ruby-on-rails-3 ssh scp

我正在尝试将字符串写入文件,然后将其上传到远程服务器。

Net::SSH.start( "localhost", "root" ) do |ssh|
  Tempfile.open('vh_', Rails.root.join('tmp') ) do |f|
    f.write("FILE_CONTENTS")
    # at this point, i have confirmed that f.path is valid and that file is not empty
    ssh.scp.upload!(f.path, "/remote/path")
    f.close!
  end

  #more ssh commands follow

end

ssh root @ localhost的原因是因为这个文件将来(将来)上传到其他服务器,使用localhost只是为了测试。此代码成功创建了临时文件(具有正确的内容),但在上载后,远程文件为空(0 B)。

它在我的本地(dev)机器上工作正常,但在上传到服务器时,该文件为空。我的本地运行Xubuntu 13.04,服务器是Ubuntu Server 13.10。

1 个答案:

答案 0 :(得分:0)

根据原始海报:

  

在上传之前,我发现解决方案(解决方法?)是f.rewind。不知道为什么会有所作为。