0

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

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

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

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

对 Sinatra 和 Ruby 来说都是新手。

4

1 回答 1

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 具有仅接受对图像而不是敏感数据的调用的安全措施。

于 2013-03-13T04:39:09.220 回答