2011-08-24 13 views
7

sto cercando di utilizzare Ruby per caricare un file alla mia SFTP e posso SSH e tutto va bene, ma il mio script sta venendo a mancare .... Ecco il mio piccolo scriptrubino errore 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 

ma io continuo a ricevere questo errore

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) 

Tutte le idee che sto facendo male

risposta

14

credo che quando usando SFTP, il file di destinazione necessario specificare.

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 

Nella documentazione, gli esempi utilizzano un percorso remoto per file, non solo la directory.

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

1

Sembra che l'upload di una directory cerca di mkdir che directory di destinazione prima.

Se la directory di destinazione esiste già, il file mkdir non riesce come nell'esempio riportato nell'originale. Sto ancora cercando un modo per utilizzare il built-in caricare una directory - nel frattempo, il mio programma cammina nella directory locale e carica ogni file singolarmente.