6

我有一個調用我的文檔控制器的下載動作,以向客戶端提供從s3檢索到的可下載對象。然而,OpenURI似乎無法解析已存儲的url回形針。這個URL在瀏覽器中是可見的,沒有任何問題,但是當試圖在控制器中打開它時,我得到一個403 Forbidden錯誤。OpenURI :: HTTPError 403禁止 - 爲存儲在S3上的資產打開回形針url(霧寶石)

documents_controller 

    def download 
    data = open(Document.find(params[:id]).upload.url) 
    send_data data.read, :type => data.content_type, :x_sendfile => true 
    end 

一個例子網址是

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

錯誤 - OpenURI :: HTTPError 403禁止 在行動的第一線投籃命中率高達,在URL打開時。 任何想法可能是什麼?

回答

4

當URL不是字符串格式時可能會發生403錯誤。使用類似示例中的字符串插值爲郵件附件工作:

doc = order.document 
attachments["Order.pdf"] = File.read(open("#{doc}")) 
相關問題