Aide pour supprimer des photos du serveur qui étaient attachées à des publications supprimées

Après avoir supprimé plusieurs milliers de publications avec des photos, les téléchargements dans la section d’administration restent les mêmes. Ce paramètre était réglé sur 1. Existe-t-il un moyen de purger plus rapidement tous les téléchargements associés aux publications supprimées ?

période de grâce de suppression des téléchargements supprimés (en jours)

Période de grâce (en jours) avant qu’un téléchargement supprimé ne soit effacé.

J’ai fait cela, ce que j’ai vu dans un autre post, mais après la reconstruction, rien n’a disparu.

Je suis allé dans sidkiq

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

Je suis passé de 13,7 Go de téléchargements à 14 Go après avoir tout supprimé. Il semble que plus je supprime, plus les données de téléchargement augmentent.

Je ne suis pas sûr de comprendre. Je n’ai rien téléchargé, seulement supprimé des publications et des catégories sur un site de test. Il n’y a pas d’utilisateurs pour le moment et cela fait environ 3 heures. De 13.7 à maintenant, cela affiche ceci. Les

Je ne pense pas que la table post_uploads existe encore. Il s’agit maintenant de uploads et upload_references. Vous devrez peut-être mettre à jour cet ancien extrait pour en tenir compte si vous essayez cette méthode.

Comment avez-vous supprimé ces publications ? Simplement en les supprimant logiquement dans l’interface utilisateur ? Je pense que le paramètre qui nettoie les images orphelines (clean orphan uploads grace period hours) ne tient pas compte du fait qu’elles sont supprimées logiquement, et se soucie uniquement de savoir si l’image est toujours dans la dernière version de la publication :

Je pense que vous pouvez sélectionner toutes les publications dans la console Rails et utiliser PostDestroyer dessus pour les supprimer définitivement, puis les téléversements seront nettoyés la prochaine fois que Jobs::CleanUpUploads s’exécutera (ou sera déclenché manuellement).

S’il s’agit d’une catégorie entière, par exemple, je pense que vous pouvez utiliser quelque chose comme ceci :

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

Je pense qu’il y a aussi une conversation dans ce sujet qui pourrait vous être utile : Delete deleted-posts permanently in bulk? - #57 by Simon_Manning

:warning: Et j’ajouterai l’avertissement habituel concernant la sauvegarde avant d’apporter des modifications dans la console Rails, juste au cas où. Alerte couteau aiguisé. :rotating_light:

(Juste pour information, Jobs::DirectoryRefreshDaily et Jobs::DirectoryRefreshOlder sont ceux qui peuplent l’annuaire des utilisateurs (User Directory), donc ils ne sont pas pertinents ici)

5 « J'aime »

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