我打电话给我的文档控制器下载操作,用从s3检索到的可下载对象为客户端提供服务。但是,OpenURI似乎无法解析已存储的url paperclip。这个URL可以在浏览器中访问而没有任何问题,但是当试图在控制器中打开它时,我得到403 Forbidden错误。
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打开时,在动作的第一行上拍摄。 知道它可能是什么吗?
答案 0 :(得分:4)
当URL不是字符串格式时,可能会发生403错误。在邮件附件的类似示例中使用字符串插值为我工作:
doc = order.document
attachments["Order.pdf"] = File.read(open("#{doc}"))