Ayuda para eliminar fotos del servidor que estaban adjuntas a publicaciones eliminadas

Después de eliminar varios miles de publicaciones con fotos, las cargas en la sección de administración siguen siendo las mismas. Esta configuración se estableció en 1. ¿Hay alguna forma de purgar todas las cargas asociadas con las publicaciones eliminadas más rápido?

Período de gracia de días para purgar cargas eliminadas

Período de gracia (en días) antes de que se elimine una carga eliminada.

Hice esto, lo que vi en otra publicación, pero después de reconstruir, no se eliminó nada.

Entró en sidkiq

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

Pasé de 13,7 GB de cargas a 14 GB después de eliminar todo. Parece que cuanto más elimino, mayor es el tamaño de los datos de las cargas.

No estoy seguro de entender esto. No he subido nada, solo he eliminado publicaciones y categorías en un sitio de prueba. No hay usuarios en este momento y han pasado unas 3 horas. De 13.7 a ahora se muestra esto. Las cargas huérfanas configuradas para eliminarse en una hora y no ha sucedido.

Veo este hilo que discute mucho, ¿pero nada sucedió?

Luego este de aquí.

Y he intentado todo lo mencionado en rails, sidekiq y con comandos en ese hilo y todavía nada se elimina. Deberían ser cientos, si no miles de imágenes eliminadas, ya que los usuarios publicaron fotos con cada hilo.

Creo que la tabla post_uploads ya no existe. Ahora es uploads y upload_references. Es posible que necesites actualizar ese fragmento antiguo para tenerlo en cuenta si estás intentando ese método.

¿Cómo has eliminado esas publicaciones? ¿Solo borrado suavemente en la interfaz de usuario? Creo que la configuración que limpia las imágenes huérfanas (clean orphan uploads grace period hours) no tiene en cuenta si están borradas suavemente, y solo le importa si la imagen todavía está en la última versión de la publicación:

Creo que puedes seleccionar todas las publicaciones en la consola de Rails y usar PostDestroyer en ellas para eliminarlas permanentemente, y luego las cargas se limpiarán la próxima vez que se ejecute Jobs::CleanUpUploads (o se active manualmente).

Si es una categoría completa, por ejemplo, creo que puedes usar algo como esto:

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

Creo que también hay una conversación en este tema que te puede resultar útil Delete deleted-posts permanently in bulk? - #57 by Simon_Manning

:warning: Y añadiré la advertencia habitual sobre hacer una copia de seguridad antes de realizar cambios en la consola de Rails, por si acaso. Alerta de cuchillo afilado. :rotating_light:

(Solo como información, pero Jobs::DirectoryRefreshDaily y Jobs::DirectoryRefreshOlder son los que pueblan el Directorio de Usuarios, por lo que no son relevantes aquí)

5 Me gusta

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