2014-01-21 19 views
0

我試圖使用Net :: SFTP gem將文件上傳到服務器。我的代碼如下:使用Rails上傳文件時出現錯誤gem Net :: SFTP:沒有這樣的文件

remote_path = "path/of/remote/file.txt" 
local_path = "path/to/local/file.txt" 
Net::SFTP.start("SERVER", "USER", :password => "PASSWORD") do |sftp| 
    sftp.upload!(local_path, remote_path) 
end 

當我執行此我得到:

Net::SFTP::StatusException (Net::SFTP::StatusException open path/of/remote/file.txt (2, "no such file")) 

我認爲這個問題是目錄的整個遠程路徑尚不存在。如果我給它一個確實存在的目錄路徑,它將創建目錄。我希望上傳也可以在路徑中創建目錄,如果它們還不存在。這確實是問題,如果是的話,我如何創建SFTP的目錄?

回答

2

你必須創建目錄第一

sftp.mkdir! "/path/to/directory" 
2

這裏有一個小片段,以檢查是否存在目錄,如果沒有創建它:

if !sftp.dir.entries("root").map { |entry| entry.name }.include?("new_dir") 
    sftp.mkdir("root/new_dir") 
end 
相關問題