2011-08-24 26 views
7

tôi đang cố gắng sử dụng ruby ​​để tải lên một tập tin vào sftp của tôi và tôi có thể ssh vào và tất cả là tốt nhưng kịch bản của tôi là không .... đây là kịch bản nhỏ của tôiruby ​​sftp lỗi

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 

nhưng tôi tiếp tục nhận được lỗi này

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) 

Bất kỳ ý tưởng những gì tôi đang làm sai

Trả lời

14

tôi tin rằng khi sử dụng sftp, điểm đến tập tin phải được xác định.

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 

Trong tài liệu, ví dụ sử dụng đường dẫn đến tệp từ xa, không chỉ thư mục.

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

1

Dường như tải lên của một thư mục cố gắng mkdir rằng thư mục đích đầu tiên.

Nếu thư mục đích đó đã tồn tại, mkdir không thành công theo ví dụ được đưa ra trong bản gốc. Tôi vẫn đang tìm cách để sử dụng được xây dựng trong tải lên một thư mục - trong khi đó, chương trình của tôi đi vào thư mục địa phương, và tải lên từng tập tin riêng lẻ.