可行性检查 - 修改或替换作曲家中的文件上传功能

大家好。

我正在为一个小规模用户社区部署 Discourse,该社区有着非常严格的安全要求。我们希望彻底加固论坛的安全设置,使每个分类只能被特定用户组查看,这似乎可以通过管理面板实现。但我们同样希望以相同方式保护文件上传(随机生成的 URL 对我们来说安全性不足)。我们并未使用 S3;如果自建文件服务器,很可能只是文件系统上的简单静态文件。我曾提出使用我们自己的私有服务器来托管上传文件,而不是使用 Discourse 自带的服务,但我们不希望用户无意中降低图片的安全性,因此希望 Web 界面用户也通过该服务,并接入这个独立的文件托管服务。

我认为这归结为两个选项:
(1) 修改编辑器中上传按钮所使用的 API 端点,使其指向我们的服务器;或
(2) 禁用上传按钮,并替换为我们自己的“替身”插件,由该插件将文件上传至我们的服务器。
此外,我们还需要为 Web API 调用添加参数,特别是为图片添加分类或等效的分类标识。

我的问题是:是否有人凭经验知道,我们能否通过现有的 API、插件 API 等实现这一需求?非常感谢!

这是一个示例:Discourse Video Upload Plugin with YouTube and Vimeo

上传模型中有一个 access_control_post_id 字段。

我的猜测是,如果你希望对上传文件进行细粒度的权限控制,使用现有的 S3 代码会节省大量时间——尤其是当晦涩的文件名不足以解决问题时——你实际上需要为你要存储内容的任何地方编写一整套权限系统。或者也许我只是不太理解。