Display PDF from Amazon S3 in new window for iPad etc

Hello RoR experts,

I am trying to display a PDF stored out at Amazon S3 (private) using a
keyed, expiring URL in a new window.

I cannot display a direct link to the PDF (since it expires), instead I
use a link to the show method, which does the following

(where @book.file_path returns the keyed URL to the PDF)

This displays the PDF in a popup window however, I just want to display
the PDF in a NEW browser window or, even better, in the native PDF
viewer.

I need to do this because on mobile devices (read iPad), this popup
doesn’t work well. It draws the popup at the top of the page and the
user cannot see it unless he/she scrolls to the top. Even if they do
find it, the native behavior of the iPad PDF viewer–which is pretty
nice–is not there. i.e. I want it to behave just like it would if the
link were directly to the PDF.

I have tried window.open(‘mypdfpath’) and many other combinations.

Is anyone doing this or have an idea how to approach it?

TIA,
Dan

Have you tried something like this:

<%= link_to “LINKNAME”, @book.file_path, :target => “_blank” %>

Jens
On Samstag, 7. Mai 2011 at 06:51, Dan S. wrote:
Hello RoR experts,

Jens,

Thanks for the reply, I’m pretty sure that would work BUT–as I said
in my post…

I cannot display a direct link to the PDF (since it expires), instead
I
use a link to the show method

So the link is sent from the show method and then opened at once.

-Dan

Please explain this suggestion futher.

Thanks,
Dan

On 7 May 2011 05:51, Dan S. [email protected] wrote:

allowfullscreen=“true”>
viewer.
Is anyone doing this or have an idea how to approach it?
Can’t you just make ‘show’ action redirect to the S3 URL (i.e. using
the ‘redirect_to’ method)?

Chris

On 7 May 2011 05:51, Dan S. [email protected] wrote:

allowfullscreen=“true”>
viewer.
Could you just render the pdf from the show action?

Colin

Max,

This sounds elegant but I haven’t a clue how to start doing it. :slight_smile:

In this scenario, the PDF still moves directly from S3 to the user’s
browser, correct? (It’s too slow to pull it locally and then send
it.)
If so, please send me to a reference for this or supply an example.

Thanks,
Dan

If the account / S3 URL should not be shown to the user, you could
stream the pdf content to them directly with your app as the proxy and
just set the appropriate http headers to give the user a suggested
name for the content - doing it this way will trigger the browser to
use whatever application is associated with PDF on their system to
display the content.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs