我有一个我开始在Sinatra中编写的webapp,需要获取图像并以HTML格式显示它们。
图像是从位于防火墙后面的API以及我的Sinatra网站所在的Web服务器获取的。 API返回包含驻留在防火墙后面的图像的URL的JSON。
我不能简单地将这些网址插入我的视图中的img标签,因为它们不是公开的。
我想知道如何最好地解决这个问题。有些方法让我获取图像并将它们缓存在我的Sinatra服务器上,以便它们面向公众?
Sinatra和Ruby都很新。
答案 0 :(得分:1)
如果您有从API获取图像的路线怎么办?
示例:
get '/image/:image_name' do
content_type 'image/png'
API::get_image(params[:image_name])
end
然后你必须重写图像标签中的网址才能使用这条路线。
希望这有帮助
PS:还要确保可以传递的:image_name不会成为API的安全漏洞。确保它只允许“有意义”的网址,或者API具有安全措施,它只接受对图像的调用,而不接受合理的数据。