Der Anwendungsfall ist die zeitkritische Entfernung von Uploads als Teil von “Human in the Loop”-Automatisierungs-Workflows unter Verwendung von activepieces, Data Explorer und der API.
Das Ziel ist es, regulären Moderatoren eine einfache Möglichkeit zu geben, Uploads sofort und mit Sicherheit vollständig zu entfernen, ohne SSH-Zugriff zu benötigen, und alle bekannten Fälle für das Brechen von Upload-Referenzen umfassend abzudecken sowie automatisch die spezifischen URLs (und im Falle von proxied Avataren das URL-Präfix basierend auf dem Benutzernamen) aus dem CDN zu löschen (purgen).
Ich war erleichtert, als ich beim Testen sah, dass Avatar-, Profilhintergrund- und Kartenhintergrund-Referenzen automatisch behandelt werden, wenn ein Upload zerstört wird.
https://github.com/discourse/discourse/commit/e1975e293f2625259e925b4a3c93d88d5acfcaa8
https://github.com/discourse/discourse/commit/38e7b1a0492dd4282c3cd3b1ddb2b3343661d31f
Die beiden Hauptszenarien wären “verbrannte Erde” (scorched earth) und “chirurgische Entfernung” (surgical removal). Dies ist die laufende Arbeit für “verbrannte Erde”:
Konvertierung in eine Upload-Hash-Liste:
-
Avatar-URLs (Benutzernamen mittels Regex extrahieren) → Avatar-Hash über Data Explorer-Abfrage abrufen (der Hash ist nicht in der URL enthalten)
-
Topic-/Post-URLs → Alle in diesem Beitrag verwendeten Upload-Hashes mittels Data Explorer sammeln
-
Direkte Original-/optimierte Upload-URLs (einschließlich Profilhintergrund und Kartenhintergrund) → Hashes mittels Regex extrahieren
Anschließend jede Hash abfragen, um alle Vorkommen zu finden (eine Data Explorer-Abfrage zur Abdeckung aller Fälle, jeweils ein Hash):
-
Benutzername/ID-Liste für Benutzer, die ihn für einen Avatar verwendet haben
-
Benutzername/ID-Liste für Benutzer, die ihn für einen Profilhintergrund verwendet haben
-
Benutzername/ID-Liste für Benutzer, die ihn für einen Kartenhintergrund verwendet haben
-
Liste aller Beiträge (Rohdaten), die diesen Upload verwenden
Aktionen:
-
Alle Benutzer sperren (suspend), die den Upload für einen Avatar, Profilhintergrund oder Kartenhintergrund verwendet haben
-
Alle Benutzer sperren, deren Beiträge auf den Ziel-Upload verweisen, aber diejenigen ausschließen, deren Verweis innerhalb eines Zitats verschachtelt ist
-
Alle Themen löschen
-
Alle Beiträge löschen
-
Upload zerstören (kein API-Endpunkt)
-
Alle CDN-URLs (optimiert/unoptimiert) löschen (purgen)
-
Das Standardpräfix für proxied Avatar-URLs für jeden zugehörigen Benutzernamen löschen (um alle Größen abzudecken)
Das Szenario der chirurgischen Entfernung wäre im Wesentlichen dasselbe, würde aber die zugehörigen Benutzer nicht sperren und erfordert einige Änderungen hinsichtlich des Sammelns aller Upload-Hashes aus Post-/Topic-URLs.
Wahrscheinlich würden die Beiträge/Themen selbst immer noch gelöscht, um fehlerhafte Referenzen zu vermeiden, aber das Entfernen der Upload-Markdown-Syntax für diesen spezifischen Upload (ohne andere Uploads zu berühren) wäre besser, falls möglich. Ähnlich wie bei dieser Automatisierung, wenn sie nicht alle Markdown-Upload-Referenzen entfernt hätte.
Idealerweise möchte ich auch Hashes blockieren können, sodass nach dem Durchlaufen des Obigen jemand nicht einfach ein neues Konto erstellen und erneut hochladen kann.
![]()
Ich glaube nicht, dass dies derzeit für einen regulären Moderator möglich ist, z. B. durch die Verwendung von beobachteten Wörtern (watched words). Daher könnte das Durchführen eines periodischen Scans wie oben für eine Liste von Hashes eine Möglichkeit sein, dies zu handhaben.