別の方法の 1 つは、sshfs を使用してリモート サーバーをマウントすることです (読み取り専用)。
sshfs -o ro server:/path/to/files path/on/webserver/to/mount
http://www.howtogeek.com/howto/ubuntu/how-to-mount-a-remote-folder-using-ssh-on-ubuntu/
あなたの質問によるストリーミングに関して:
次のようなことができます。
data = `ssh server 'cat path/to/file/on/server'`
send_data(data)
http://apidock.com/rails/ActionController/Streaming/send_data
ここでの秘訣は、scp の代わりに ssh を使用することです。シェルから試してみてください。
ssh server 'cat path/to/file' > local_file
これにより、ファイルをローカルで STDOUT に送信できます (scp 経由では送信できません)。
これにより、ファイルをストリーミングできますが、これを行うことはお勧めしません。
- ファイルをRubyにロードしているため、プロセスが不必要に肥大化します。
- Railsプロセスの外部でダウンロードをオフロードするX-Sendfileの利点を失います
- パスにユーザー提供のデータが含まれている場合は、シェル インジェクションによって自分自身 (およびサーバー) を傷の世界に連れて行きます。