【问题标题】:Serving an image from behind a firewall with Ruby/Sinatra使用 Ruby/Sinatra 从防火墙后面提供图像
【发布时间】:2013-03-13 12:39:09
【问题描述】:

我有一个我已经开始在 Sinatra 中编写的 web 应用程序,它需要获取图像并以 HTML 显示它们。

图像是从位于防火墙后面的 API 以及我的 Sinatra 站点所在的 Web 服务器中获取的。 API 返回的 JSON 包含指向位于防火墙后面的图像的 URL。

在我的视图中,我不能简单地将这些 URL 放入 img 标签中,因为它们不是面向公众的。

我想知道如何最好地解决这个问题。我有什么方法可以获取图像并将它们缓存在我的 Sinatra 服务器上,以便它们面向公众?

对于 Sinatra 和 Ruby 来说都是新手。

【问题讨论】:

  • 你能在你的问题上取得进展吗?我的回答有帮助吗?

标签: html ruby sinatra firewall vpn


【解决方案1】:

如果您有从 API 获取图像的路由怎么办?

例子:

get '/image/:image_name' do
    content_type 'image/png'

    API::get_image(params[:image_name])
end

那么你将不得不重写你的图片标签中的 url 来使用这个路由。

希望对你有帮助

PS:还要确保可以通过的 :image_name 不会成为 API 的安全漏洞。确保它只允许“有意义”的 url,或者 API 有安全措施,它只接受对图像的调用,而不接受对敏感数据的调用。

【讨论】:

  • 我认为这样的事情会奏效。用户身份验证令牌和用户 ID 将从 cookie 中检索并在调用 API 以将图像传回之前进行检查。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 2021-02-28
相关资源
最近更新 更多