使用Ruby / Sinatra从防火墙后面提供图像

时间:2013-03-13 03:20:27

标签: html ruby sinatra firewall vpn

我有一个我开始在Sinatra中编写的webapp,需要获取图像并以HTML格式显示它们。

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

我不能简单地将这些网址插入我的视图中的img标签,因为它们不是公开的。

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

Sinatra和Ruby都很新。

1 个答案:

答案 0 :(得分:1)

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

示例:

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

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

然后你必须重写图像标签中的网址才能使用这条路线。

希望这有帮助

PS:还要确保可以传递的:image_name不会成为API的安全漏洞。确保它只允许“有意义”的网址,或者API具有安全措施,它只接受对图像的调用,而不接受合理的数据。