Forum: Ruby on Rails question about creating a link to download

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jay D. (Guest)
on 2009-03-25 20:54
Hi Folks,

I'm new to Rails and working on a project where after the user logs in
they can click on a link to download an exe file ( say for example the
file is at http://test.com/test.exe). I want to keep the link to the exe
file hidden. What are the best ways to implement this step.

I was thinking about using the redirect to url but I have been getting
an error saying that I cannot use two redirect's in a function.

Also, I was thinking of using NET:HTTP to use http request but I have no
idea how to implement this.


Thanks!!
Frederick C. (Guest)
on 2009-03-25 21:05
(Received via mailing list)
On Mar 25, 6:54 pm, Jay D. <removed_email_address@domain.invalid> wrote:
> Hi Folks,
>
> I'm new to Rails and working on a project where after the user logs in
> they can click on a link to download an exe file ( say for example the
> file is athttp://test.com/test.exe). I want to keep the link to the exe
> file hidden. What are the best ways to implement this step.
>
> I was thinking about using the redirect to url but I have been getting
> an error saying that I cannot use two redirect's in a function.
>

redirect won't hide the url

> Also, I was thinking of using NET:HTTP to use http request but I have no
> idea how to implement this.

You could but it would block the mongrel for the entire time it took
to download the file.

What's not clear from your example is whether this file is on your
server or somewhere else.

Fred
Jay D. (Guest)
on 2009-03-25 21:11
Thanks for the reply.

The exe file is on another server.

Thanks!

Frederick C. wrote:
> On Mar 25, 6:54�pm, Jay D. <removed_email_address@domain.invalid> wrote:
>> Hi Folks,
>>
>> I'm new to Rails and working on a project where after the user logs in
>> they can click on a link to download an exe file ( say for example the
>> file is athttp://test.com/test.exe). I want to keep the link to the exe
>> file hidden. What are the best ways to implement this step.
>>
>> I was thinking about using the redirect to url but I have been getting
>> an error saying that I cannot use two redirect's in a function.
>>
>
> redirect won't hide the url
>
>> Also, I was thinking of using NET:HTTP to use http request but I have no
>> idea how to implement this.
>
> You could but it would block the mongrel for the entire time it took
> to download the file.
>
> What's not clear from your example is whether this file is on your
> server or somewhere else.
>
> Fred
Frederick C. (Guest)
on 2009-03-25 22:17
(Received via mailing list)
On Mar 25, 7:11 pm, Jay D. <removed_email_address@domain.invalid> wrote:
> Thanks for the reply.
>
> The exe file is on another server.
>
OK. I was asking because if on the same server then things like X-Send-
File or X-Accel-Redirect work very nicely. You certainly could use net/
http to get the file and then send the response to the user although
for anything but the smallest of files you'll need to start sending
the data before you have grabbed all of it (because otherwise the user
will get bored or the browser will time you out) and I'm not sure
there's a nice way of doing that in rails.

Fred
Jay D. (Guest)
on 2009-03-25 22:54
This is an example.

I tried this below code but it blocks mongrel until the whole file is
read which is over 500 MB.

  def download
    send_data(open('http://mirrors.gigenet.com/ubuntu/intrepid/ubuntu-...,
    :filename => 'ubuntu-8.10-desktop-i386.iso' ,
    :type => 'application/force-download',
    :disposition => 'attachment')
  end
robdoan (Guest)
on 2009-03-27 13:50
(Received via mailing list)
On Mar 26, 3:54 am, Jay D. <removed_email_address@domain.invalid> wrote:
>   end
> --
> Posted viahttp://www.ruby-forum.com/.


Try using send_file function :)
http://apidock.com/rails/ActionController/Streamin...
Fernando P. (Guest)
on 2009-03-27 15:12
Jay D. wrote:
> Hi Folks,
>
> I'm new to Rails and working on a project where after the user logs in
> they can click on a link to download an exe file ( say for example the
> file is at http://test.com/test.exe). I want to keep the link to the exe
> file hidden. What are the best ways to implement this step.
You can make an expirable link à-la Rapidshare, and/or use
X-Accel-Redirect provided by Nginx, we use the latter to stream VOD.
This topic is locked and can not be replied to.