Dopo aver eliminato diverse migliaia di post con foto, gli upload nella sezione di amministrazione rimangono invariati. Questa impostazione era impostata su 1. Esiste un modo per eliminare più velocemente tutti gli upload associati ai post eliminati?
purge deleted uploads grace period days
Periodo di grazia (in giorni) prima che un upload eliminato venga cancellato.
Ho fatto questo, quello che ho visto in un altro post, ma dopo la ricostruzione non è scomparso nulla.
Non sono sicuro di aver capito. Non ho caricato nulla se non post e categorie eliminati su un sito di prova. Al momento non ci sono utenti e sono passate circa 3 ore. da 13.7 a ora mostra questo. Caricamenti orfani impostati per l’eliminazione tra un’ora e non è successo.
Vedo questo thread che discute molto ma non è successo nulla?
Poi questo qui.
E ho provato tutto in rails menzionato, sidekiq e con i comandi in quel thread e ancora nulla viene eliminato. Dovrebbero essere centinaia se non migliaia di immagini eliminate poiché gli utenti hanno rimosso post che contenevano foto in ogni thread.
Non credo che la tabella post_uploads esista più. Ora sono uploads e upload_references. Potrebbe essere necessario aggiornare quel vecchio snippet per tenerne conto se stai provando quel metodo.
Come hai eliminato quei post? Semplicemente eliminandoli in modo soft dall’interfaccia utente? Penso che l’impostazione che pulisce le immagini orfane (clean orphan uploads grace period hours) non tenga conto se sono state eliminate in modo soft, ma si preoccupa solo se l’immagine è ancora presente nell’ultima versione del post:
Penso che tu possa selezionare tutti i post nella console rails e usare PostDestroyer su di essi per eliminarli definitivamente, e poi gli upload verranno puliti la prossima volta che Jobs::CleanUpUploads verrà eseguito (o attivato manualmente).
Se si tratta di un’intera categoria, ad esempio, penso che tu possa usare qualcosa di simile:
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
E aggiungerò il solito avviso di fare un backup prima di apportare modifiche nella console rails, per sicurezza. Attenzione coltello affilato.
(Solo per tua informazione, ma Jobs::DirectoryRefreshDaily e Jobs::DirectoryRefreshOlder sono quelli che popolano la Directory Utenti, quindi non sono rilevanti qui)