aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaksim Pechnikov <parallel588@gmail.com>2020-05-18 06:48:19 +0300
committerMaksim Pechnikov <parallel588@gmail.com>2020-05-18 06:48:19 +0300
commitc33a4315fb09e67d0ed5f644877054a3fb7b1fe1 (patch)
tree43ba4f970e8155ecf24b549d7c249fb4788deab9
parent3f8d68bdf3224cd6023b3d7f8e64221222872820 (diff)
downloadpleroma-c33a4315fb09e67d0ed5f644877054a3fb7b1fe1.tar.gz
updated docs
-rw-r--r--config/config.exs5
-rw-r--r--docs/configuration/cheatsheet.md20
-rw-r--r--lib/pleroma/web/media_proxy/invalidation.ex5
-rw-r--r--lib/pleroma/web/media_proxy/invalidations/http.ex6
4 files changed, 27 insertions, 9 deletions
diff --git a/config/config.exs b/config/config.exs
index 882d25069..25cf2a9b9 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -380,10 +380,7 @@ config :pleroma, :media_proxy,
enabled: false,
invalidation: [
enabled: false,
- provider: Pleroma.Web.MediaProxy.Invalidation.Script,
- options: %{
- script_path: "./installation/nginx-cache-purge.example"
- }
+ provider: Pleroma.Web.MediaProxy.Invalidation.Script
],
proxy_opts: [
redirect_on_failure: false,
diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md
index 1078c4e87..aaea3f46c 100644
--- a/docs/configuration/cheatsheet.md
+++ b/docs/configuration/cheatsheet.md
@@ -249,6 +249,26 @@ This section describe PWA manifest instance-specific values. Currently this opti
* `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)]`.
* `whitelist`: List of domains to bypass the mediaproxy
+* `invalidation`: options for remove media from cache after delete object:
+ * `enabled`: Enables purge cache
+ * `provider`: Which one of the [purge cache strategy](#purge-cache-strategy) to use.
+
+### Purge cache strategy
+
+#### Pleroma.Web.MediaProxy.Invalidation.Script
+
+This strategy allow perform external bash script to purge cache.
+Urls of attachments pass to script as arguments.
+
+* `script_path`: path to external script.
+
+#### Pleroma.Web.MediaProxy.Invalidation.Http
+
+This strategy allow perform custom http request to purge cache.
+
+* `method`: http method. default is `purge`
+* `headers`: http headers. default is empty
+* `options`: request options. default is empty
## Link previews
diff --git a/lib/pleroma/web/media_proxy/invalidation.ex b/lib/pleroma/web/media_proxy/invalidation.ex
index dd9a53a27..371aa8ae0 100644
--- a/lib/pleroma/web/media_proxy/invalidation.ex
+++ b/lib/pleroma/web/media_proxy/invalidation.ex
@@ -10,8 +10,9 @@ defmodule Pleroma.Web.MediaProxy.Invalidation do
end
defp do_purge(true, urls) do
- config = Config.get([:media_proxy, :invalidation])
- config[:provider].purge(urls, config[:options])
+ provider = Config.get([:media_proxy, :invalidation, :provider])
+ options = Config.get(provider)
+ provider.purge(urls, options)
:ok
end
diff --git a/lib/pleroma/web/media_proxy/invalidations/http.ex b/lib/pleroma/web/media_proxy/invalidations/http.ex
index 40c624efc..66fafa7ba 100644
--- a/lib/pleroma/web/media_proxy/invalidations/http.ex
+++ b/lib/pleroma/web/media_proxy/invalidations/http.ex
@@ -3,9 +3,9 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.Http do
@impl Pleroma.Web.MediaProxy.Invalidation
def purge(urls, opts) do
- method = Map.get(opts, :http_method, :purge)
- headers = Map.get(opts, :http_headers, [])
- options = Map.get(opts, :http_options, [])
+ method = Map.get(opts, :method, :purge)
+ headers = Map.get(opts, :headers, [])
+ options = Map.get(opts, :options, [])
Enum.each(urls, fn url ->
Pleroma.HTTP.request(method, url, "", headers, options)