Tôi đang cố gắng tạo tập lệnh để liệt kê và tải xuống dữ liệu từ máy chủ FTP bằng Ruby. Tôi mới sử dụng Ruby nên tôi đã tìm tài liệu hướng dẫn cách sử dụng Net :: FTP. Tôi gặp khó khăn khi tìm hiểu tại sao điều này không làm việc:Tại sao không thể Net :: FTP kết nối với máy chủ?
require 'net/ftp'
server = "ftp.server.com"
user = "myuser"
password = "mypassword"
Net::FTP.open(server, user, password) do |ftp|
files = ftp.chdir('mydirectory/')
files = ftp.list
puts "list out of directory:"
puts files
end
Điều đó không làm việc, trở về lỗi này:
/home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:298:in `getresp': 425 >Failed to establish connection. (Net::FTPTempError) from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:325:in `block in sendcmd' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:323:in `sendcmd' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:402:in `transfercmd' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:478:in `block (2 levels) in retrlines' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:178:in `with_binary' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:477:in `block in retrlines' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:476:in `retrlines' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:722:in `list' from test_ftp.rb:10:in `block in ' from /home/adhown/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/ftp.rb:116:in `open' from test_ftp.rb:8:in `'
thể bất cứ ai giải thích những gì xảy ra với kịch bản của tôi không?
Cảm ơn Ashish, tôi thay đổi Net: chế độ FTP thành thụ động, và nó hoạt động mà không cần thay đổi cấu hình máy chủ ftp .. :) – adhown
@adhown nếu nó giúp bạn nên chấp nhận câu trả lời. Làm như vậy không chỉ làm tăng thêm chút ít danh tiếng của bạn mà còn đi một chặng đường dài trong việc đảm bảo rằng mọi người tiếp tục trả lời các truy vấn của bạn. – saihgala
@Ashish .. xin lỗi Ashish Tôi mới vào stackoverflow, tôi không hiểu ý bạn là gì .. tôi nên làm gì? – adhown