0 votes
1 view
in AWS by (19.2k points)

I have a call to my documents controller the download action, to serve the client with a downloadable object retrieved from s3. However, OpenURL seems to have trouble parsing the URL paperclip has stored. This URL is visitable in the browser without any issue, but when attempted to open it in the controller I get a 403 Forbidden error.

documents_controller

  def download

    data = open(Document.find(params[:id]).upload.url)

    send_data data.read, :type => data.content_type, :x_sendfile => true

  end

an example URL would be

"https://s3.amazonaws.com/mybucket/documents/1/Screen?1372238888"

Error - OpenURI::HTTPError 403 Forbidden shooting up on the first line of the action when the URL is opened. Any idea what it might be?

1 Answer

0 votes
by (44.6k points)

Using String Interpolation worked for me, try this:

doc = order.document

attachments["Order.pdf"] = File.read(open("#{doc}"))

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...