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

zul*_*ain 0 ruby net-sftp

我想使用相对路径将文件上传到远程 sftp 服务器。例如,我希望能够上传到sftp://myserver.com/FileStore. 我尝试使用以下代码但它不起作用:注意:主机是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
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Net::SFTP::StatusException open /FileStore/testupload.zip (2, "no such file")
Run Code Online (Sandbox Code Playgroud)

zul*_*ain 6

我已经能够使用以下代码解决它:

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
Run Code Online (Sandbox Code Playgroud)

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