Проверка возможности: модификация или замена функции загрузки файлов в composer

Всем привет.

Я занимаюсь развертыванием Discourse для небольшой группы пользователей с довольно строгими требованиями к безопасности. Мы хотим усилить защиту форума так, чтобы каждую категорию могли видеть только определенные группы пользователей. Это, похоже, можно настроить через панель администратора, но нам также нужно обеспечить аналогичную защиту для загружаемых файлов (случайно сгенерированные URL-адреса для нас недостаточно безопасны). Мы не используем S3 — если мы настроим собственный файловый сервер, это, скорее всего, будут обычные статические файлы в файловой системе. Я выдвинул идею использовать наш собственный приватный сервер для загружаемых файлов вместо сервиса, поставляемого вместе с Discourse, но мы не хотим, чтобы пользователи через веб-интерфейс случайно снижали уровень безопасности изображений, поэтому нам нужно, чтобы пользователи веб-интерфейса также использовали этот отдельный сервис хостинга файлов.

Полагаю, это сводится к двум вариантам:
(1) Изменить конечные точки API, используемые кнопкой загрузки в редакторе, чтобы они указывали на наш сервер, или
(2) Отключить кнопку загрузки и заменить её собственным плагином-двойником, который загружает файлы на наш сервер.
Нам также потребуется добавить параметры в вызов веб-API, в частности, указывать категорию или аналогичную классификацию для изображения.

Мой вопрос: знает ли кто-нибудь сразу, сможем ли мы реализовать это с помощью существующего API, API плагинов и т. д.? Большое спасибо!

Вот пример того, как это работает: Discourse Video Upload Plugin with YouTube and Vimeo

В модели загрузок есть поле access_control_post_id.

Мне кажется, что если вам нужны детальные права доступа к загрузкам, то использование существующего кода для S3 сэкономит вам много времени — особенно если просто скрытых имён файлов недостаточно. В таком случае вам, по сути, придётся написать целую систему прав доступа для того места, где вы планируете хранить файлы. Или, возможно, я просто что-то не понимаю.