From 680716b3c9c5d8fa655d27ffdf40461a6f8b4b9c Mon Sep 17 00:00:00 2001 From: href Date: Fri, 30 Nov 2018 17:44:42 +0100 Subject: [PATCH] Config docs --- config/config.exs | 7 ------- config/config.md | 15 ++++++++++++--- lib/pleroma/web/media_proxy/controller.ex | 4 +++- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/config/config.exs b/config/config.exs index d7869464e..12f47389c 100644 --- a/config/config.exs +++ b/config/config.exs @@ -13,17 +13,10 @@ config :pleroma, Pleroma.Repo, types: Pleroma.PostgresTypes # Upload configuration config :pleroma, Pleroma.Upload, uploader: Pleroma.Uploaders.Local, - # filters: [Pleroma.Upload.DedupeFilter, Pleroma.Upload.MogrifyFilter], filters: [], proxy_remote: false, proxy_opts: [] -# Strip Exif -# Also put Pleroma.Upload.MogrifyFilter in the `filters` list of Pleroma.Upload configuration. -# config :pleroma, Pleroma.Upload.MogrifyFilter, -# args: "strip" -# Pleroma.Upload.MogrifyFilter: [args: "strip"] - config :pleroma, Pleroma.Uploaders.Local, uploads: "uploads" config :pleroma, Pleroma.Uploaders.S3, diff --git a/config/config.md b/config/config.md index c843bca5d..47e838dd6 100644 --- a/config/config.md +++ b/config/config.md @@ -5,11 +5,19 @@ If you run Pleroma with ``MIX_ENV=prod`` the file is ``prod.secret.exs``, otherw ## Pleroma.Upload * `uploader`: Select which `Pleroma.Uploaders` to use -* `strip_exif`: boolean, uses ImageMagick(!) to strip exif. +* `filters`: List of `Pleroma.Upload.Filter` to use. +* `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host. +* `proxy_remote`: If you're using a remote uploader, Pleroma will proxy media requests instead of redirecting to it. +* `proxy_opts`: Proxy options, see `Pleroma.ReverseProxy` documentation. + +Note: `strip_exif` has been replaced by `Pleroma.Upload.Filter.Mogrify`. ## Pleroma.Uploaders.Local * `uploads`: Which directory to store the user-uploads in, relative to pleroma’s working directory -* `uploads_url`: The URL to access a user-uploaded file, ``{{base_url}}`` is replaced to the instance URL and ``{{file}}`` to the filename. Useful when you want to proxy the media files via another host. + +## Pleroma.Upload.Filter.Mogrify + +* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", {"impode", "1"}]`. ## :uri_schemes * `valid_schemes`: List of the scheme part that is considered valid to be an URL @@ -68,7 +76,8 @@ This section is used to configure Pleroma-FE, unless ``:managed_config`` in ``:i ## :media_proxy * `enabled`: Enables proxying of remote media to the instance’s proxy -* `redirect_on_failure`: Use the original URL when Media Proxy fails to get it +* `base_url`: The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts. +* `proxy_opts`: All options defined in `Pleroma.ReverseProxy` documentation, defaults to `[max_body_length: (25*1_048_576)]`. ## :gopher * `enabled`: Enables the gopher interface diff --git a/lib/pleroma/web/media_proxy/controller.ex b/lib/pleroma/web/media_proxy/controller.ex index 324f75263..81ea5d510 100644 --- a/lib/pleroma/web/media_proxy/controller.ex +++ b/lib/pleroma/web/media_proxy/controller.ex @@ -2,13 +2,15 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do use Pleroma.Web, :controller alias Pleroma.{Web.MediaProxy, ReverseProxy} + @default_proxy_opts [max_body_length: 25 * 1_048_576] + def remote(conn, params = %{"sig" => sig64, "url" => url64}) do with config <- Pleroma.Config.get([:media_proxy]), true <- Keyword.get(config, :enabled, false), {:ok, url} <- MediaProxy.decode_url(sig64, url64), filename <- Path.basename(URI.parse(url).path), :ok <- filename_matches(Map.has_key?(params, "filename"), conn.request_path, url) do - ReverseProxy.call(conn, url, Keyword.get(config, :proxy_opts, [])) + ReverseProxy.call(conn, url, Keyword.get(config, :proxy_opts, @default_proxy_length)) else false -> send_resp(conn, 404, Plug.Conn.Status.reason_phrase(404))