API経由でのアップロード削除

このユースケースは、activepiecesデータエクスプローラー、およびAPIを使用して、ヒューマン・イン・ザ・ループの自動化ワークフローの一部として、時間的制約のあるアップロードの削除を行うためのものです。

目標は、通常のモデレーターが、SSHアクセスなしで、アップロード参照を壊す既知のすべてのケースを包括的にカバーし、特定のURL(およびプロキシされたアバターの場合はユーザー名に基づくURLプレフィックス)を自動的にCDNパージできるように、自信を持って即座にアップロードを完全に削除するための簡単な方法を利用できるようにすることです。


アップロードが破棄されたときに、アバター、プロフィール背景、カード背景の参照が自動的に処理されるのを見て、テストで安心しました。

https://github.com/discourse/discourse/commit/e1975e293f2625259e925b4a3c93d88d5acfcaa8

https://github.com/discourse/discourse/commit/38e7b1a0492dd4282c3cd3b1ddb2b3343661d31f


主なシナリオは「焦土作戦」と「外科的削除」の2つになります。これが焦土作戦の作業中の内容です。


アップロードハッシュリストへの変換:

  • アバターURL(正規表現を使用してユーザー名を抽出)→データエクスプローラークエリでアバターハッシュを取得(ハッシュはURLに含まれていません)

  • トピック/投稿URL → データエクスプローラーを使用して、その投稿で使用されているすべてのアプロードハッシュを収集

  • 直接のオリジナル/最適化されたアップロードURL(プロフィール背景とカード背景を含む)→正規表現を使用してハッシュを抽出


次に、各ハッシュをクエリして、すべての出現箇所を見つけます(一度に1つのハッシュに対して、すべてのケースをカバーする1つのデータエクスプローラークエリ):

  • アバターに使用したユーザーのユーザー名/IDリスト

  • プロフィール背景に使用したユーザーのユーザー名/IDリスト

  • カード背景に使用したユーザーのユーザー名/IDリスト

  • このアップロードを使用しているすべての投稿(生)のリスト


アクション:

  • アバター、プロフィール背景、またはカード背景にアップロードを使用したすべてのユーザーを一時停止

  • ターゲットのアップロードを参照する投稿を持つすべてのユーザーを一時停止しますが、その参照が引用符の内側にある場合は除外します

  • すべてのトピックを削除

  • すべての投稿を削除

  • アップロードを破棄(APIエンドポイントなし)

  • すべてのCDN URL(最適化済み/未最適化)をパージ

  • 関連付けられた各ユーザー名について、プロキシされたアバターURLの標準プレフィックスをパージします(すべてのサイズをカバーするため)


外科的削除のシナリオは基本的に同じですが、関連するユーザーを一時停止せず、投稿/トピックURLからすべてのアプロードハッシュを収集する方法に関していくつかの変更が必要です。

壊れた参照を避けるために、投稿/トピック自体を削除するのが最善かもしれませんが、その特定のアップロードのアップロードマークダウンを削除すること(他のアップロードには触れない)は、可能であればより優れています。これは、すべてのマークダウンアップロード参照を削除しない場合のこの自動化のようです。


理想的には、ハッシュをブロックできるようにしたいです。そうすれば、上記の手順を実行した後、誰かが単に新しいアカウントを作成して再アップロードすることを防ぐことができます。:melting_face: :coffin:

これは、現在のところ、監視対象の単語を使用するなどして、通常のモデレーターが行えることではないと思います。したがって、上記のような定期的なスキャンを実行してハッシュのリストを処理する方法が、それを処理する1つの方法かもしれません。

「いいね!」 1