我想用相对路径将文件上传到远程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")
答案 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
始终假设服务器名称后面的路径是登录用户主目录的相对路径。