求助:删除已删除帖子附加的服务器照片

删除数千篇带图片的帖子后,管理员部分中的上传文件大小保持不变。此设置已设置为 1。是否有更快的方法来清除与已删除帖子关联的所有上传文件?

清理已删除上传文件的宽限期(天)

在删除上传文件之前将其擦除的宽限期(天)。

我按照另一个帖子里的说法做了,但在重建后什么也没有消失

进入了 sidkiq

* Jobs::CleanUpUploads
* Jobs::PurgeDeletedUploads
* Jobs::DirectoryRefreshDaily
* Jobs::DirectoryRefreshOlder

删除所有内容后,我的上传文件从 13.7gb 增加到 14gb。似乎我删除的越多,上传文件数据就越高。

我不确定我是否理解。我没有上传任何东西,只是在测试站点上删除了帖子和类别。现在没有用户了,而且已经过去了大约 3 个小时。从 13.7 到现在显示这个。孤立的上传设置为一小时后删除,但尚未发生。

我看到了这个讨论了很多的帖子,但什么都没发生?

然后是这个。

而且我尝试了那个帖子中提到的所有 Rails 方法、sidekiq 以及命令,但仍然没有任何东西被删除。由于用户在每个帖子中都发布了带有照片的帖子,因此应该有数百甚至数千张图片被删除。

我认为 post_uploads 表已不存在。现在是 uploadsupload_references。如果你正在尝试使用旧方法,可能需要更新该旧代码片段以考虑这一点。

你是如何删除这些帖子的?只是在 UI 中软删除吗?我认为清理孤立图片的设置(clean orphan uploads grace period hours)不考虑它们是否被软删除,只关心图片是否仍在帖子的最新版本中:

我认为你可以通过 rails 控制台选择所有帖子,并使用 PostDestroyer 来硬删除它们,然后在下次 Jobs::CleanUpUploads 运行(或手动触发)时,上传文件将被清理。

例如,如果它是一个完整的类别,我认为你可以使用类似这样的方法:

category = Category.where(id: CATEGORY_ID).pluck(:id)
topic = Topic.where(category_id: category).pluck(:id)

topic.each do |t|
  Post.where(topic_id: t).find_each do |p|
    PostDestroyer.new(Discourse.system_user, p).destroy
    p.destroy!
  end
end

我认为这个主题也有一些讨论,你可能会觉得有用 Delete deleted-posts permanently in bulk? - #57 by Simon_Manning

:warning: 我将添加通常的警告,即在 rails 控制台中进行更改之前进行备份,以防万一。锋利刀具警报。 :rotating_light:

(只是 FYI,但 Jobs::DirectoryRefreshDailyJobs::DirectoryRefreshOlder 是填充 用户目录 的作业,与此无关)

5 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.