updated docs
authorMaksim Pechnikov <parallel588@gmail.com>
Mon, 18 May 2020 03:48:19 +0000 (06:48 +0300)
committerMaksim Pechnikov <parallel588@gmail.com>
Mon, 18 May 2020 03:48:19 +0000 (06:48 +0300)
config/config.exs
docs/configuration/cheatsheet.md
lib/pleroma/web/media_proxy/invalidation.ex
lib/pleroma/web/media_proxy/invalidations/http.ex

index 882d25069de11f2832532d3dc68f4115618e3ba6..25cf2a9b927031fd73d1df9772ece41b61c0be1b 100644 (file)
@@ -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,
index 1078c4e8769a46f71b3a3528e1fd6f79ed53b767..aaea3f46cb5811f3b8175a11e2c31b33d3ea3721 100644 (file)
@@ -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
 
index dd9a53a275daea9ef19fb199f1824f7289dd018f..371aa8ae0bcd9469b5bb9aea810551fde2c6ca11 100644 (file)
@@ -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
 
index 40c624efcbee51c56f38b8db54ba490f81797980..66fafa7bac29917d7417bece43ab4c8a6b6b057f 100644 (file)
@@ -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)