在 Discourse 中,用户上传文件的权限设置并没有集中在一个单一的“开关面板”中,而是分布在文件类型与大小限制、新用户防滥用限制,以及需要依赖组件的特定用户组限制中。
以下是具体的设置位置和操作指南:
1. 基础设置:控制可上传的文件与大小
进入 Discourse 后台管理界面 (Admin) → 设置 (Settings)。你可以直接在搜索框中搜索以下配置项代码:
authorized extensions(授权的扩展名):在此处填写允许普通用户上传的文件后缀(例如jpg|png|pdf|zip)。注意:如果你清空此列表,等于彻底禁用了所有人的本地上传功能。authorized extensions for staff(员工授权扩展名):专门为管理员和版主开放的上传白名单。你可以借此允许员工上传普通用户被禁用的特殊格式(如mp4,csv等)。max image size kb(最大图片大小) &max attachment size kb(最大附件大小):设置允许上传的单文件最大体积(默认最大上限通常为 30720 KB 即 30 MB,如需更大通常建议使用云存储链接)。
2. 信任级别控制:限制新用户上传
Discourse 默认规则是:只要用户达到 Trust Level 1 (基础用户),即可上传 authorized extensions 允许的所有文件。如果你只想防范刚注册的 Trust Level 0 (新用户) 滥发文件,请在设置中搜索:
newuser max images(新用户最大图片数):限制新用户在一篇帖子中最多能上传几张图片。如果设为0,则新用户完全无法上传图片。newuser max attachments(新用户最大附件数):限制新用户在一篇帖子中能包含的文件附件数量。设为0则禁止发附件。
3. 高阶控制:仅允许特定“用户组”或“高等级”上传
如果你希望实现更严格的权限隔离(例如:“只有付费 VIP 用户组才能上传文件” 或 “只有 Trust Level 2 以上的核心用户才能上传”),Discourse 的原生后台设置无法直接完成此操作。你需要安装官方的主题组件 (Theme Component) 来实现:
- 在后台前往 自定义 (Customize) → 组件 (Components) → 安装 (Install)。
- 选择通过 URL 导入,输入官方推荐组件的仓库地址:
https://github.com/tshenry/discourse-restrict-uploads(组件名为 Restrict uploads)。 - 安装并将其添加到你的默认主题中。
- 进入该组件的设置页面,你就可以指定允许上传的最低信任级别或特定的用户组。不满足条件的用户,发帖编辑器中的“上传”图标将会被隐藏,同时也无法进行拖拽上传。