summaryrefslogtreecommitdiff
path: root/installation/nginx-cache-purge.example
diff options
context:
space:
mode:
Diffstat (limited to 'installation/nginx-cache-purge.example')
-rwxr-xr-xinstallation/nginx-cache-purge.example39
1 files changed, 39 insertions, 0 deletions
diff --git a/installation/nginx-cache-purge.example b/installation/nginx-cache-purge.example
new file mode 100755
index 000000000..12dfa733c
--- /dev/null
+++ b/installation/nginx-cache-purge.example
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# A simple Bash script to delete an media from the Nginx cache.
+
+SCRIPTNAME=${0##*/}
+
+# NGINX cache directory
+CACHE_DIRECTORY="/tmp/pleroma-media-cache"
+
+function get_cache_files() {
+ local max_parallel=${3-16}
+ find $2 -maxdepth 1 -type d | xargs -P $max_parallel -n 1 grep -ERl "^KEY:.*$1" | sort -u
+}
+
+function purge_item() {
+ local cache_files
+ cache_files=$(get_cache_files "$1" "$2")
+
+ if [ -n "$cache_files" ]; then
+ for i in $cache_files; do
+ [ -f $i ] || continue
+ echo "Deleting $i from $2."
+ rm $i
+ done
+ else
+ echo "$1 is not cached."
+ fi
+}
+
+function purge() {
+ for url in "$@"
+ do
+ echo "$SCRIPTNAME delete $url from cache ($CACHE_DIRECTORY)"
+ purge_item $url $CACHE_DIRECTORY
+ done
+
+}
+
+purge $1