Vérification de faisabilité - modification ou remplacement de la fonction de téléversement de fichiers dans le compositeur

Bonjour à tous.

Je suis en train de déployer Discourse pour une petite communauté d’utilisateurs ayant des exigences de sécurité très strictes. Nous souhaitons verrouiller la sécurité du forum afin que chaque catégorie ne soit visible que par un groupe spécifique d’utilisateurs, ce qui semble possible depuis le panneau d’administration. Cependant, nous voulons également sécuriser les téléchargements de fichiers de la même manière (les URLs générées aléatoirement ne sont pas suffisamment sécurisées pour nos besoins). Nous n’utilisons pas S3 ; si nous mettons en place ce serveur de fichiers, il s’agira probablement de fichiers statiques très simples stockés dans un système de fichiers. J’ai évoqué l’idée d’utiliser notre propre serveur privé pour les fichiers téléchargés plutôt que le service fourni avec Discourse, mais nous ne voulons pas que nos utilisateurs dégradent involontairement la sécurité des images. Nous souhaitons donc que les utilisateurs de l’interface web utilisent également ce service d’hébergement de fichiers séparé.

Je pense que cela se résume à deux options :
(1) Modifier les points de terminaison API utilisés par le bouton de téléchargement dans le compositeur pour qu’ils pointent vers notre serveur, ou
(2) Désactiver le bouton de téléchargement et le remplacer par notre propre plugin jumeau, qui télécharge vers notre serveur.
Nous devrons également ajouter des paramètres à l’appel API web, notamment pour ajouter une catégorie ou une classification équivalente à l’image.

Ma question est de savoir si quelqu’un sait, de mémoire, si nous devrions pouvoir réaliser cela avec l’API existante, l’API des plugins, etc. Merci beaucoup !

Voici un exemple de cela : Discourse Video Upload Plugin with YouTube and Vimeo

Il existe un champ access_control_post_id dans le modèle des uploads.

Je suppose que si vous souhaitez des permissions granulaires pour les uploads, vous gagnerez beaucoup de temps en utilisant le code S3 existant — surtout si des noms de fichiers obscurs ne suffisent pas. Vous devriez essentiellement écrire un système de permissions complet pour l’endroit où vous stockerez les fichiers. Ou peut-être que je ne comprends tout simplement pas.