Ruby net sftp上传文件到相对路径

时间:2013-06-03 18:06:48

标签: ruby net-sftp

我想用相对路径将文件上传到远程sftp服务器。例如,我希望能够上传到sftp://myserver.com/FileStore。我尝试使用以下代码,但它不起作用:NB:host is myserver.com/FileStore

uri = URI.parse('sftp://' + host)
Net::SFTP.start(uri.host,username,:password=>password,:port=>port) do |sftp|
                    sftp.upload(testupload.zip,"#{uri.path}/testupload.zip")
                end

这是我得到的错误:

Net::SFTP::StatusException open /FileStore/testupload.zip (2, "no such file")

1 个答案:

答案 0 :(得分:2)

我可以使用以下代码解决它:

uri = URI.parse('sftp://' + host)
Net::SFTP.start(uri.host,username,:password=>password,:port=>port) do |sftp|
    sftp.upload(testupload.zip,"./#{uri.path}/testupload.zip")
end

始终假设服务器名称后面的路径是登录用户主目录的相对路径。