Эликсир Феникс Сервиз S3 Image

Я хотел бы запросить изображение 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 ответ

Решение

Вы должны сопоставить образец с 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
Другие вопросы по тегам