凤凰:从aws s3

时间:2016-09-18 20:26:56

标签: amazon-s3 elixir phoenix-framework

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

从云端我将文件作为二进制数据。我是否需要创建一些这些数据是否会显示在页面上的临时文件?我可以将图像显示为base64,但我认为这不是最好的方法。我很感激你的建议。

1 个答案:

答案 0 :(得分:2)

由于您已经将图像提取到二进制文件,因此您只需将其直接发送到具有相应内容类型的客户端,浏览器就会将其呈现为图像。例如,要在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标题而看到正确呈现的图片。