# 一种监控用户上传文件的方法 🖼️

**URL:** https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635
**Category:** Feature
**Tags:** moderation, uploads
**Created:** [2025 年3 月 24 日 17:30 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635 "2025-03-24T17:30:36Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2025 年3 月 24 日 17:30 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/1 "2025-03-24T17:30:36Z")

</div>

为了便于管理，能够查看和浏览用户上传的文件将非常有用，尤其因为用户可以在个人消息中上传文件。

据我所知，目前查看这些文件的唯一方法是：

- 浏览 `/uploads/` 文件夹

- 使用 `with:images` 或 `filetypes:ext1,ext2,ext3` 过滤器进行搜索

- 使用数据浏览器

这些都不是监控论坛上上传文件的实用方法。

我曾在别处讨论过这个功能想法，但最好还是有一个专门的主题。

> [@Canapin](#):
>
> 我记得有一个网站允许用户上传图片。他们遇到了麻烦，因为有人上传了非法内容，警方也介入了。  
> 因此，他们关闭了该网站，并在其另一个平台上完全禁止了图片上传多年。  
> 所以这里的想法只是为了监控和更积极主动，因为非法内容仍可能涉及法律干预。删除一张图片并不意味着它从未存在过 🙂

> [@RGJ](#):
>
> 我甚至无法想象，在 12 年的 Discourse 中，没有人构建一个类似于 WordPress 的媒体库插件。那将是太棒了！

即使不至于达到媒体库的程度，能够监控这些文件也将非常棒。

例如，一个新的管理员路由，显示所有最近上传的文件，并带有一些过滤器：

- 日期

- 用户

- 文件类型

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2026 年1 月 25 日 13:57 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/2 "2026-01-25T13:57:00Z")

</div>

这只是一个概念验证：

该插件添加了一个仅限管理员使用的 `admin/uploads` 路由，用于浏览和筛选全站的用户上传内容。

功能：

- 列出所有上传内容并显示缩略图
- 无限滚动
- 按用户名和日期进行筛选

* * *

⚠ 该插件 99% 由 AI 生成，且代码未经过严格审查。 **如果你无法自行审查代码并确认其安全性，请不要安装它。**  
我不鼓励非开发人员使用 AI 开发插件，因此该插件应仅被视为概念验证。

不过，如果开发者希望查看这段可能很糟糕的代码，或者将其作为灵感来源来开发更严肃、更健壮的项目，请随意。👍

仓库地址：`https://github.com/Canapin/discourse-uploads-library`

* * *

编辑：现在有一个功能更完善的插件，它使用了一些相关特性（[🖼 主题画廊](https://meta.discourse.org/t/topic-gallery/394953?u=Canapin)）。  
如果用途与 #Contribute > Feature 主题完全不同，该插件还展示了带有筛选和限制的用户上传内容，并提供可浏览的界面。

---

<div class="post-metadata">

### Author: ![Andrew\_Rowe](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrew_rowe/32/445877_2.png) [@Andrew\_Rowe](https://meta.discourse.org/u/Andrew_Rowe)
#### Post date: [2026 年1 月 25 日 14:29 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/3 "2026-01-25T14:29:10Z")

</div>

我投票支持此功能，因为我认为随着论坛用户量的增长，媒体上传最终需要更多的存储空间，这将反过来要求服务器升级，从而增加运行论坛的成本。最终，更多的用户量可能需要更多的内存或 CPU 资源，但我怀疑存储空间将是迫使升级的首要因素。一种可以轻松查看正在上传内容的机制将有助于确保存储空间没有被浪费。一张图片占用的存储空间可能相当于大量的文本。

拥有论坛数据是运行 Discourse 实例而不是社交媒体群组的一个有力激励因素，在社交媒体群组中，数据归属于全球公司并与其共享。然而，悖论的一部分是，如果用户上传了图片或视频，而几年后论坛管理员因为存储空间不足而删除了该图片，用户可能会感到不满。一旦图片上传到 Discourse 论坛，它就成为了论坛历史的一部分。

这篇关于文件优化的[最近的主题](https://meta.discourse.org/t/does-discourse-used-optimized-versions-of-uploads/393939/2)让我很感兴趣，因为我之前相当确定 Discourse 会对非常大的图像文件进行降采样/压缩，但了解更多后我感到很放心。Discourse 有很多很好的工具可以限制上传文件的大小限制。某种用于查看、批量优化和可能删除图片的工具将是 Discourse 的一个强大的管理工具。

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [2026 年1 月 25 日 16:40 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/4 "2026-01-25T16:40:35Z")

</div>

> [@Andrew\_Rowe](#):
>
> 某种用于审查、批量优化和可能删除图片的工具将是 Discourse 的一个强大的管理工具。

是的，这个想法也时不时地会出现，并且与本主题中提出的更一般的想法相符。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2026 年1 月 25 日 18:40 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/5 "2026-01-25T18:40:52Z")

</div>

我添加了一个功能。点击缩略图时，它会显示包含上传内容的帖子，并区分普通帖子和私信。

---

<div class="post-metadata">

### Author: ![ToddZ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/toddz/32/328350_2.png) [@ToddZ](https://meta.discourse.org/u/ToddZ)
#### Post date: [2026 年1 月 25 日 22:26 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/6 "2026-01-25T22:26:58Z")

</div>

这看起来超级有用！😃  
我没有资格审查代码，但我希望有人能接手。

---

<div class="post-metadata">

### Author: ![pierrox](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pierrox/32/251996_2.png) [@pierrox](https://meta.discourse.org/u/pierrox)
#### Post date: [2026 年1 月 26 日 16:50 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/7 "2026-01-26T16:50:52Z")

</div>

太棒了！

一个小问题，如果文件是 .png 格式，它会全屏打开，而不是显示文件位置信息。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2026 年1 月 26 日 17:03 UTC](https://meta.discourse.org/t/a-way-to-monitor-user-uploaded-files/358635/8 "2026-01-26T17:03:15Z")

</div>

是的，这不是扩展的问题，它对未与任何帖子关联的文件也执行了此操作；意思是用于已删除帖子或通过其他方式（如头像或 Discourse 通用创建的文件）上传的文件。

我已经修复了它（现在显示没有关联的帖子），并且还在库中添加了每个上传的作者。

![chrome_ASuIHjCMXz](https://global.discourse-cdn.com/meta/original/4X/f/a/1/fa12c6c16751ca1de45cce27791ff4c45e362278.gif)

我不认为我会在该插件中添加更多功能了，我添加了 Ruby 和 JS 测试以提供帮助，但仅此而已。

如果需要更多功能，应该由真正的开发人员制作一个真正的插件来实现。😄
