aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-01-21 14:20:13 -0600
committerMark Felder <feld@feld.me>2021-01-21 14:20:13 -0600
commit003402df401f2bbf46e47017e3b7a2ec27615ea2 (patch)
tree61b8f4d9a71fee4100f7955ca55c6141eae38666 /lib
parent3078e62488ad1d94d1d3b83faf9f2b070e4aff06 (diff)
downloadpleroma-003402df401f2bbf46e47017e3b7a2ec27615ea2.tar.gz
Add ability to invalidate cache entries for Apache
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/media_proxy/invalidation/script.ex19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/pleroma/web/media_proxy/invalidation/script.ex b/lib/pleroma/web/media_proxy/invalidation/script.ex
index 0f66c2fe3..c447614fa 100644
--- a/lib/pleroma/web/media_proxy/invalidation/script.ex
+++ b/lib/pleroma/web/media_proxy/invalidation/script.ex
@@ -13,6 +13,7 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.Script do
def purge(urls, opts \\ []) do
args =
urls
+ |> format_urls(Keyword.get(opts, :url_format))
|> List.wrap()
|> Enum.uniq()
|> Enum.join(" ")
@@ -40,4 +41,22 @@ defmodule Pleroma.Web.MediaProxy.Invalidation.Script do
Logger.error("Error while cache purge: #{inspect(error)}")
{:error, inspect(error)}
end
+
+ def format_urls(urls, :htcacheclean) do
+ urls
+ |> Enum.map(fn url ->
+ uri = URI.parse(url)
+
+ query =
+ if !is_nil(uri.query) do
+ "?" <> uri.query
+ else
+ "?"
+ end
+
+ uri.scheme <> "://" <> uri.host <> ":#{inspect(uri.port)}" <> uri.path <> query
+ end)
+ end
+
+ def format_urls(urls, _), do: urls
end