diff --git a/lib/pinchflat_web/controllers/media_items/media_item_controller.ex b/lib/pinchflat_web/controllers/media_items/media_item_controller.ex index a741e26..31a9ef4 100644 --- a/lib/pinchflat_web/controllers/media_items/media_item_controller.ex +++ b/lib/pinchflat_web/controllers/media_items/media_item_controller.ex @@ -47,10 +47,9 @@ defmodule PinchflatWeb.MediaItems.MediaItemController do case parse_range(conn, file_size) do {:ok, {start_pos, end_pos}} -> + Logger.debug("Streaming media item: #{media_item.uuid} from #{start_pos} to #{end_pos}") length = end_pos - start_pos + 1 - Logger.debug("Streaming media item: #{media_item.uuid} from #{start_pos} to #{end_pos} (#{length} bytes)") - conn |> put_resp_content_type(mime_type) |> put_resp_header("accept-ranges", "bytes") diff --git a/lib/pinchflat_web/endpoint.ex b/lib/pinchflat_web/endpoint.ex index 3fdca80..b6ab016 100644 --- a/lib/pinchflat_web/endpoint.ex +++ b/lib/pinchflat_web/endpoint.ex @@ -61,8 +61,14 @@ defmodule PinchflatWeb.Endpoint do # that would probably be more difficult for end-users to set up than just # having the application figure it out. defp override_base_url(conn, _opts) do + new_scheme = + case get_req_header(conn, "x-forwarded-proto") do + [scheme] -> scheme + _ -> to_string(conn.scheme) + end + new_port = if conn.port in [80, 443], do: "", else: ":#{conn.port}" - new_base_url = "#{conn.scheme}://#{conn.host}#{new_port}" + new_base_url = "#{new_scheme}://#{conn.host}#{new_port}" Phoenix.Controller.put_router_url(conn, new_base_url) end