削除済み投稿に添付されたサーバー上の写真削除ヘルプ

投稿とそれに紐づく写真を数千件削除した後も、管理画面のアップロード容量は変わりません。この設定は1に設定されていました。削除された投稿に関連するアップロードを一括削除する方法はありますか?

purge deleted uploads grace period days

削除されたアップロードが消去されるまでの猶予期間(日数)。

他の投稿で見かけたこれを実行しましたが、再構築後も何も削除されませんでした。

Sidekiqに入りました。

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

アップロード容量が13.7GBから14GBに増加しました。削除すればするほど、アップロードデータが増加しているようです。

これを理解できません。テストサイトで投稿やカテゴリを削除しただけで、何もアップロードしていません。現在ユーザーはいません。約3時間ほど経過しました。13.7から現在までこの表示になっています。孤児化されたアップロードは1時間後に削除される設定ですが、まだ行われていません。

このスレッドで多くの議論を見ましたが、何も起こりませんでしたか?

次にこちらです。

そして、そのスレッドで言及されているRails、Sidekiq、コマンドなど、すべてを試しましたが、何も削除されません。ユーザーがすべてのスレッドで写真を投稿して投稿を削除した場合、数百、あるいは数千枚の画像が削除されるはずです。

post_uploads テーブルはもう存在しないと思います。現在は uploadsupload_references です。もしその方法を試しているのであれば、古いスニペットをそれに応じて更新する必要があるかもしれません。

これらの投稿をどのように削除しましたか? UI でソフト削除しただけですか? 孤立した画像をクリーンアップする設定(clean orphan uploads grace period hours)は、ソフト削除されているかどうかを考慮せず、画像が投稿の最新バージョンにまだ存在するかどうかのみを気にすると思います。

レールコンソールで投稿をすべて選択し、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: レールコンソールで変更を加える前に、念のためバックアップを取得することをお勧めします。ナイフ注意。 :rotating_light:

(参考情報ですが、Jobs::DirectoryRefreshDailyJobs::DirectoryRefreshOlderユーザーディレクトリ を生成するものであり、ここでは関係ありません)

「いいね!」 5

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