OpenURI::HTTPError 403 Forbidden - 打开 S3 上存储的资产的回形针 URL(雾 gem)
Posted
技术标签:
【中文标题】OpenURI::HTTPError 403 Forbidden - 打开 S3 上存储的资产的回形针 URL(雾 gem)【英文标题】:OpenURI::HTTPError 403 Forbidden - open paperclip url for asset stored on S3 (fog gem) 【发布时间】:2013-06-23 19:10:15 【问题描述】:我调用了我的文档控制器的下载操作,以便为客户端提供从 s3 检索到的可下载对象。然而,OpenURI 似乎无法解析已存储的 url 回形针。这个 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 Forbidden 打开 URL 时,在动作的第一行向上射击。 知道它可能是什么吗?
【问题讨论】:
【参考方案1】:当 URL 不是字符串格式时,可能会发生 403 错误。在类似的邮件附件示例中使用字符串插值对我有用:
doc = order.document
attachments["Order.pdf"] = File.read(open("#doc"))
【讨论】:
【参考方案2】:您可以尝试对我有用的另一件事:添加“用户代理”选项:
data = open(Document.find(params[:id]).upload.url, 'User-Agent' => 'ruby')
【讨论】:
以上是关于OpenURI::HTTPError 403 Forbidden - 打开 S3 上存储的资产的回形针 URL(雾 gem)的主要内容,如果未能解决你的问题,请参考以下文章
带有 AngularJS 的 Spring Boot 和 CSRF - Forbitten 403 -> 错误注销
将 macOS 从 Big Sur 升级到 Monterey 后,发布请求出现 403 禁止错误
Laravel (7) Resource Policies don't work with CamelCase, get a 403 for view policy (show in controll