本参考指南介绍了 Discourse 站点如何自动清理孤立和已删除的上传文件。本指南适用于自托管和托管的 Discourse 站点。
所需用户级别:管理员
您是否曾好奇上传到 Discourse 站点但不再被引用的文件或图片会发生什么,或者如何从站点中移除上传内容?您来对地方了!
您可能需要删除上传到 Discourse 但不再被引用的文件或图片。虽然用户界面中没有内置的方法来实现这一点,但 Discourse 确实安排了一个自动的 Sidekiq 任务来清理孤立和已删除的上传,该任务名为 clean up uploads。
孤立和已删除的上传
孤立上传是指已上传到 Discourse 站点但不再被引用的文件。只有当上传未被以下任何位置引用时,才被视为孤立:
- 帖子的最新版本中
- 草稿中
- 排队待发布的帖子中
- 站点设置中(例如:徽标、网站图标)
- 自定义表情符号中
- 主题中
- 用户头像/背景/卡片图片中
- 分类徽标/背景图片中
- 徽章图片中
- 群组装饰图片中
当包含上传的主题/帖子被删除时,该上传即被视为“已删除”。
清理上传
要完全从 Discourse 中移除上传文件,您必须执行以下操作之一:
- 通过移除对上传的任何引用来强制使其变为孤立状态。可以通过编辑帖子中的上传链接,或移除其他任何引用该上传的位置来实现。
- 删除包含该上传的所有主题/帖子,从而使该上传被视为“已删除”。请注意,在删除帖子之前,您需要先从帖子中移除该图片,以使其变为孤立状态。
所有孤立的未引用上传和已删除的上传将在 clean up uploads 任务运行时(经过宽限期后)从存储中移除。
站点设置
以下站点设置可在 example.discourse.com/admin/site_settings/category/files 处找到,用于修改 Discourse 自动清理上传的方式。
clean up uploads:默认值为 trueclean orphan uploads grace period hours:默认值为 48purge deleted uploads grace period days:默认值为 30
clean up uploads 设置可用于启用或禁用自动删除孤立的未引用上传。clean orphan uploads grace period hours 设置控制检测到孤立上传后多久将其清理。purge deleted uploads grace period days 设置控制已删除(标记为墓碑)的上传在永久移除前保留多久——这由另一个单独的 purge deleted uploads 定时任务处理。
关于 clean up uploads 任务的更多详细信息,请参阅 GitHub 上的 clean_up_uploads.rb 文件。
清理 S3 上传
以下部分仅适用于自托管的 Discourse 站点。
如果您当前托管在我们的 企业计划 上,并且对从 S3 存储中删除上传有任何疑问,请联系 team@discourse.org。
清理孤立和已删除的上传在本地存储和 S3 存储中的工作方式类似。本地存储与 S3 存储之间的唯一区别在于,S3 上传的清理由 S3 通过 墓碑策略 自动处理。有关 S3 如何处理此问题的更多详细信息,请参阅 管理存储生命周期。
默认情况下,clean up uploads 任务包含 S3 上传。但是,如果您希望禁用此功能,可以取消勾选 s3 configure tombstone policy 站点设置。

