2011-08-24 15 views
7

estoy tratando de utilizar rubí para cargar un archivo a mi SFTP y puedo ssh y todo está bien, pero mi guión está fallando .... aquí está mi pequeño scriptrubí error 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 

pero sigo recibiendo este error

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) 

Alguna idea de lo que estoy haciendo mal

Respuesta

14

creo que al utilizar SFTP, el archivo de destino debe ser especificado.

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 

En la documentación, los ejemplos usan una ruta de acceso remota al archivo, no solo el directorio.

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

1

Parece que la carga de un directorio mkdir intenta que el directorio de destino en primer lugar.

Si ese directorio de destino ya existe, el mkdir falla según el ejemplo dado en el original. Todavía estoy buscando una forma de usar el directorio incorporado para cargar un directorio, mientras tanto, mi programa recorre el directorio local y carga cada archivo individualmente.