lix药凤凰服务S3图像

时间:2018-11-27 04:21:21

标签: amazon-web-services amazon-s3 elixir phoenix-framework

我想请求一个S3图像,然后使用Phoenix来提供它。

def getImage(conn, %{"id" => uuid}) do
   file = ExAws.S3.get_object("bucket", "images/image.jpg")
   |> ExAws.request

   conn
   |> put_resp_content_type("image/jpg")
   |> put_resp_header(
      "content-disposition",
      "attachment; filename=\"file.jpg\""
   )
   |> send_resp(200, file)
end

我发现了无数关于如何上传到S3的教程,但是关于检索却一无所获。先感谢您!

1 个答案:

答案 0 :(得分:2)

您必须对get_object函数进行模式匹配,然后从中提取图像内容。

def getImage(conn, %{"id" => uuid}) do
  {:ok, %{body: image_content}} = ExAws.S3.get_object("bucket", "images/image.jpg")
  |> ExAws.request

  conn
  |> put_resp_content_type("image/jpg")
  |> put_resp_header(
    "content-disposition",
    "attachment; filename=\"file.jpg\""
  )
  |> send_resp(200, image_content)
end
相关问题