aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2020-09-03 12:40:42 -0500
committerMark Felder <feld@FreeBSD.org>2020-09-03 14:42:11 -0500
commit6141eb94ab034b5141a5c60b2814fb45b829c1ac (patch)
tree98df2ed6006d29b84e92d11663f7ec3d09a0b78c
parent85446cc30c97a326d90b4ef719ba2e54c2ad423f (diff)
downloadpleroma-6141eb94ab034b5141a5c60b2814fb45b829c1ac.tar.gz
Fetch preview requests through the MediaProxy. Separate connection options are not needed.
Use a separate pool for preview requests
-rw-r--r--config/config.exs10
-rw-r--r--config/description.exs21
-rw-r--r--lib/pleroma/web/media_proxy/media_proxy_controller.ex17
3 files changed, 8 insertions, 40 deletions
diff --git a/config/config.exs b/config/config.exs
index 317ef84a9..d691753bd 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -445,10 +445,7 @@ config :pleroma, :media_preview_proxy,
enabled: false,
thumbnail_max_width: 600,
thumbnail_max_height: 600,
- image_quality: 85,
- proxy_opts: [
- head_request_max_read_duration: 5_000
- ]
+ image_quality: 85
config :pleroma, :chat, enabled: true
@@ -761,6 +758,11 @@ config :pleroma, :pools,
max_waiting: 10,
timeout: 10_000
],
+ preview: [
+ size: 50,
+ max_waiting: 10,
+ timeout: 10_000
+ ],
upload: [
size: 25,
max_waiting: 5,
diff --git a/config/description.exs b/config/description.exs
index 868b89d29..73333d6e6 100644
--- a/config/description.exs
+++ b/config/description.exs
@@ -1978,27 +1978,6 @@ config :pleroma, :config_description, [
key: :image_quality,
type: :integer,
description: "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)."
- },
- %{
- key: :proxy_opts,
- type: :keyword,
- description: "Media proxy options",
- suggestions: [
- head_request_max_read_duration: 5_000
- ],
- children: [
- %{
- key: :head_request_max_read_duration,
- type: :integer,
- description: "Timeout (in milliseconds) of HEAD request to remote URI."
- }
- ]
- },
- %{
- key: :whitelist,
- type: {:list, :string},
- description: "List of hosts with scheme to bypass the mediaproxy",
- suggestions: ["http://example.com"]
}
]
},
diff --git a/lib/pleroma/web/media_proxy/media_proxy_controller.ex b/lib/pleroma/web/media_proxy/media_proxy_controller.ex
index 961c73666..b1f00fa0c 100644
--- a/lib/pleroma/web/media_proxy/media_proxy_controller.ex
+++ b/lib/pleroma/web/media_proxy/media_proxy_controller.ex
@@ -33,8 +33,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
def preview(conn, %{"sig" => sig64, "url" => url64}) do
with {_, true} <- {:enabled, MediaProxy.preview_enabled?()},
- {:ok, url} <- MediaProxy.decode_url(sig64, url64),
- :ok <- MediaProxy.verify_request_path_and_url(conn, url) do
+ {:ok, url} <- MediaProxy.decode_url(sig64, url64) do
handle_preview(conn, url)
else
{:enabled, false} ->
@@ -50,9 +49,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
defp handle_preview(conn, url) do
with {:ok, %{status: status} = head_response} when status in 200..299 <-
- Tesla.head(url,
- opts: [adapter: [timeout: preview_head_request_timeout(), follow_redirect: true]]
- ) do
+ Pleroma.HTTP.request("head", MediaProxy.url(url), [], [], [adapter: [pool: :preview]]) do
content_type = Tesla.get_header(head_response, "content-type")
handle_preview(content_type, conn, url)
else
@@ -172,17 +169,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
{thumbnail_max_width, thumbnail_max_height}
end
- defp preview_head_request_timeout do
- Keyword.get(media_preview_proxy_opts(), :head_request_max_read_duration) ||
- Keyword.get(media_proxy_opts(), :max_read_duration) ||
- ReverseProxy.max_read_duration_default()
- end
-
defp media_proxy_opts do
Config.get([:media_proxy, :proxy_opts], [])
end
-
- defp media_preview_proxy_opts do
- Config.get([:media_preview_proxy, :proxy_opts], [])
- end
end