Хотите следующее?
1) Клиент (браузер) отправляет запрос на сервер Rails
2) Сервер должен ответить содержимым файла, расположенного наftp server.
Это так?
Если это так, просто перенаправьте браузер в папку ftp.Например,
# in controller
ftp_url = "ftp://someserver.com/dir_name/file_name.txt
redirect_to ftp_url
Вышеприведенное работает, если у ftp-файла есть анонимный доступ для доступа.
Если вам действительно нужен доступ к файлу с сервера и потоковая передача, попробуйте следующее:
# in controller
render :text => proc {|response, output|
ftp_session = FTP.open(host, user, passwd, acct)
ftp_session.gettextfile(remotefile) {|data| output.write(data)}
ftp_session.close
}
Вы должны проверить заголовки в ответе, чтобы увидеть, являются ли они тем, что вы хотите.
пс.Настройка соединения ftp и потоковой передачи со второго сервера, вероятно, будет относительно медленной.Я бы использовал JS, чтобы показать пользователю занятую графику.
Я бы попробовал альтернативы ftp.Можете ли вы установить соединение NFS или смонтировать удаленный диск?Будет намного быстрее, чем ftp.Также исследуйте большие размеры окна TCP.