[#2497] Media preview proxy: redirecting to media proxy url in case of preview error or unsupported content type.

This commit is contained in:
Ivan Tashkinov 2020-09-12 10:33:42 +03:00
parent 0bda85857e
commit 32831f371f
1 changed files with 9 additions and 5 deletions

View File

@ -91,8 +91,8 @@ defp handle_preview("video/" <> _ = _content_type, conn, media_proxy_url) do
handle_video_preview(conn, media_proxy_url) handle_video_preview(conn, media_proxy_url)
end end
defp handle_preview(content_type, conn, _media_proxy_url) do defp handle_preview(_unsupported_content_type, conn, media_proxy_url) do
send_resp(conn, :unprocessable_entity, "Unsupported content type: #{content_type}.") fallback_on_preview_error(conn, media_proxy_url)
end end
defp handle_png_preview(conn, media_proxy_url) do defp handle_png_preview(conn, media_proxy_url) do
@ -114,7 +114,7 @@ defp handle_png_preview(conn, media_proxy_url) do
|> send_resp(200, thumbnail_binary) |> send_resp(200, thumbnail_binary)
else else
_ -> _ ->
send_resp(conn, :failed_dependency, "Can't handle preview.") fallback_on_preview_error(conn, media_proxy_url)
end end
end end
@ -132,7 +132,7 @@ defp handle_jpeg_preview(conn, media_proxy_url) do
|> send_resp(200, thumbnail_binary) |> send_resp(200, thumbnail_binary)
else else
_ -> _ ->
send_resp(conn, :failed_dependency, "Can't handle preview.") fallback_on_preview_error(conn, media_proxy_url)
end end
end end
@ -144,10 +144,14 @@ defp handle_video_preview(conn, media_proxy_url) do
|> send_resp(200, thumbnail_binary) |> send_resp(200, thumbnail_binary)
else else
_ -> _ ->
send_resp(conn, :failed_dependency, "Can't handle preview.") fallback_on_preview_error(conn, media_proxy_url)
end end
end end
defp fallback_on_preview_error(conn, media_proxy_url) do
redirect(conn, external: media_proxy_url)
end
defp put_preview_response_headers( defp put_preview_response_headers(
conn, conn,
[content_type, filename] = _content_info \\ ["image/jpeg", "preview.jpg"] [content_type, filename] = _content_info \\ ["image/jpeg", "preview.jpg"]