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}")) 
相关问题