ruby on rails3 retrieve files from a remote server and make it available for download -
i have files on remote server in directory such as:
class="lang-none prettyprint-override">171.xx.xx.xxx/test/data/file1.zip 171.xx.xx.xxx/test/data/file2.zip
so in web application, when user goes page (eg. www.mysite.com/downloads
) want retrieve files remote server , create available user download.
so basically, webpage like
file1.zip file2.zip
and when user clicks on one, downloads remote files onto local computer.
what best way accomplish on ruby on rails?
edit: pointed out in comments create sense pass through server rather direct link remote server.
edit2: 'open-uri' work non http urls?
when tried
url_file_path = open('172xx.xx7/test/data/my_file.zip').read send_data url_file_path, filename: test.zip, type: 'application/octet-stream'
errno::enoent: no such file or directory
you need "download" remote file first. in controller
your_controller.rb
def download send_data remote_file(params[:url]), type: 'application/octet-stream' end private def remote_file(url) open(url).read end
you might need
require 'open-uri'
normally u @ top of of controller
now can define route
get 'download' => 'your_controller#download', as: :download
now can utilize in frontend
= link_to 'download file1.zip', download_path(url: 'http://171.xx.xx.xxx/test/data/file1.zip')
ruby-on-rails ruby
No comments:
Post a Comment