本指南介绍 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 是控制检测到孤立或已删除上传文件后多久被清除并永久从站点中删除的两个设置。
有关 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 站点设置。

