OpenURI :: HTTPError 403 Forbidden - 打开存储在S3上的资产的回形针网址(雾宝石)

时间:2013-06-26 14:55:58

标签: ruby-on-rails ruby-on-rails-3 amazon-s3 paperclip http-status-code-403

我打电话给我的文档控制器下载操作,用从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打开时,在动作的第一行上拍摄。 知道它可能是什么吗?

1 个答案:

答案 0 :(得分:4)

当URL不是字符串格式时,可能会发生403错误。在邮件附件的类似示例中使用字符串插值为我工作:

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