Phoenix:显示来自aws s3的图像



我研究了phoenix,创建了一个应用程序,将图像加载到aws s3上,然后显示它。我能够将图像上传到云,但现在不清楚如何在页面上向用户显示它(我不想在云中对这些图像进行公共链接)。我一直在寻找关于这个问题的信息,但是没有找到任何有用的。

我从云端获得二进制数据的文件。我是否需要创建这些数据中的一些临时文件,以便在页面上显示?我可以将图像显示为base64,但我认为这不是最好的方式。

由于您已经将图像获取为二进制文件,因此您可以将其直接发送到具有适当内容类型的客户端,浏览器将其呈现为图像。例如,在https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png:

获取并发送png
def index(conn, _params) do
  image = HTTPoison.get!("https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png").body
  conn
  |> put_resp_header("content-type", "image/png")
  |> send_resp(200, image)
end

如果你在浏览器中打开它,你会看到图像被正确渲染,因为content-type

最新更新