我研究了phoenix,创建了一个应用程序,将图像加载到aws s3上,然后显示它。我能够将图像上传到云,但现在不清楚如何在页面上向用户显示它(我不想在云中对这些图像进行公共链接)。我一直在寻找关于这个问题的信息,但是没有找到任何有用的。
我从云端获得二进制数据的文件。我是否需要创建这些数据中的一些临时文件,以便在页面上显示?我可以将图像显示为base64,但我认为这不是最好的方式。
由于您已经将图像获取为二进制文件,因此您可以将其直接发送到具有适当内容类型的客户端,浏览器将其呈现为图像。例如,在https://upload.wikimedia.org/wikipedia/commons/7/70/Example.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
头