2011-08-24 16 views
7

próbuję użyć rubin załadować plik do mojego SFTP i mogę ssh i wszystko jest dobrze, ale mój skrypt zawodzi .... tu jest mój mały skryptrubin błąd SFTP

require 'rubygems' 
require 'net/sftp' 

Net::SFTP.start('50.5.54.77', 'root', :password => 'PASSWORD') do |sftp| 
    # upload a file or directory to the remote host 
    sftp.upload!("/Users/tamer/sites/sandbox/move_me.txt", "/home") 
end 

ale wciąż dostaję ten błąd

ruby sftp.rb 
/Library/Ruby/Gems/1.8/gems/net-sftp-2.0.5/lib/net/sftp/operations/upload.rb:313:in `on_open': 
Net::SFTP::StatusException open /srv (4, "failure") (Net::SFTP::StatusException) 

pomysłów co robię źle

Odpowiedz

14

wierzę przy użyciu SFTP, plik docelowy musi być określona.

Net::SFTP.start('50.5.54.77', 'root', :password => 'PASSWORD') do |sftp| 
    # upload a file or directory to the remote host 
    sftp.upload!("/Users/tamer/sites/sandbox/move_me.txt", "/home/move_me.txt") 
end 

W dokumentacji przykłady wykorzystują zdalną ścieżkę do pliku, a nie tylko katalog.

http://net-ssh.github.com/sftp/v2/api/classes/Net/SFTP/Operations/Upload.html

1

Wydaje się, że przesyłanie katalogu próbuje mkdir ten katalog docelowy jako pierwszy.

Jeśli ten katalog docelowy już istnieje, to mkdir nie działa zgodnie z przykładem podanym w oryginale. Nadal szukam sposobu na wykorzystanie wbudowanego uploadu katalogu - w międzyczasie mój program przechodzi do lokalnego katalogu i przesyła każdy plik indywidualnie.