No se puede determinar ya que editaste tu publicación de forma sigilosa, lo cual no generó una nueva revisión. La primera versión de esta publicación solo contiene “edited.png”.
Lo que me hace pensar que enlazaste la imagen y no la subiste.
Sí, porque editaste tu publicación demasiado rápido. Tenemos una ventana de gracia de 300 segundos aquí, en la que si haces una edición, no se creará una nueva versión de la publicación.
Si observas el código fuente, verás que las imágenes son simplemente enlaces a Dropbox.
Los enlaces subyacentes llevan mucho tiempo eliminados. ¿No debería eso significar que estos .gif dejen de aparecer? Al hacer clic en “Ver imagen” desde el menú contextual, me lleva a una dirección de community.signalusers. ¿Es ese el comportamiento esperado?
Estoy probando; editaré esto en unos 300 segundos y poco después eliminaré el enlace.
deleted.png
Edición #2
El enlace está eliminado, pero la imagen persiste en el historial de ediciones. Quizás no tenga un registro de Upload ya que no fue eliminada por la limpieza automática.
Supongo, al observar, que es el comportamiento esperado que se guarde localmente cuando está habilitada la opción download_remote_images_to_local. Creo que esa es la configuración relevante.
Así que esto
no funciona para este tipo de carga, como se demostró en mi publicación anterior. Corrígeme si me equivoco.
La carga se eliminará si la configuración del sitio limpiar cargas está habilitada, después de período de gracia de horas para limpiar cargas huérfanas.
Limpiar subidas suena como una configuración general que capturaría todas las imágenes con un registro de upload, ¿es correcto? No solo aquellas presentes debido a download_remote_images_to_local. Si es así, debería poder encontrar ejemplos en el sitio de subidas de imágenes regulares que no se están eliminando como resultado de la limpieza automática.
¿Te importa si pregunto a qué está configurado el clean orphan uploads grace period hours aquí para poder ofrecerlo como solución? ¿O viene con un valor predeterminado?
Si deciden habilitar esa configuración, ¿tendrán que hacer algo para aplicarla a publicaciones anteriores?
Edición
Solo para ser explícito, la idea aquí es que esto no es un problema, sino que se necesita activar una configuración. Solo no quiero volver atrás y decir “¡Necesitas habilitar esto!” y que me respondan “¡Ya está habilitado!” Me vería tonto.
También me sorprendí buscando frenéticamente un lugar para navegar por las subidas (algo familiar gracias a MediaWiki), porque sé que los archivos se suben varias veces, incluso duplicados o triplicados. A veces me pregunto dónde está un archivo que subí hace un tiempo, pero que quizás se perdió o fue eliminado, para poder enlazarlo en lugar de volver a subirlo una vez más… Supongo que hay algo que decir sobre un navegador de archivos…
También tuve que eliminar de alguna manera un archivo subido. No tenemos habilitada la tarea de limpieza, ya que algunos archivos provienen de una importación de un software de foro diferente y aún no se han referenciado correctamente en las publicaciones importadas. Así que necesitaba encontrar una forma manual. Lo siguiente funciona, pero no es elegante…
Asegúrate de que la carga relevante ya no esté en la versión actual de ninguna publicación. De esa manera, Discourse la considerará huérfana y no causará problemas cuando la elimines.
Usa el plugin Data Explorer o una forma diferente de consultar la base de datos de Discourse para listar las cargas huérfanas, encontrar la relevante y anotar su upload_id y filename. Consulta relevante:
SELECT
uploads.id, uploads.user_id, uploads.created_at,
uploads.url, uploads.filesize
FROM uploads
LEFT OUTER JOIN post_uploads ON uploads.id = post_uploads.upload_id
WHERE post_uploads.post_id IS NULL
ORDER BY created_at DESC
LIMIT 100
En la base de datos o con la consola Rails para Discourse, elimina el registro asociado de la tabla uploads por su upload_id. Aquí uso la consola Rails:
Upload.where(id: 16384).first.delete
Elimina el archivo asociado, incluidas todas las versiones optimizadas (si las hay, se aplica a las imágenes) del sistema de archivos a través de SSH. Ten en cuenta el comodín añadido antes de la extensión del archivo para capturar también las versiones optimizadas, que tienen un sufijo aquí. Por supuesto,
cd /path/to/discourse/shared/public/
find . -name 43adade7a4cc64426adb8232a56cb2c3b49fb7c9*.pdf -type f -delete
¡Vaya! Parece que la imagen a la que se hace referencia en esta publicación no está capturada por estas configuraciones:
¿Por qué no se ha eliminado?
¿También me pregunto por qué Discourse “carga” un archivo enlazado como el enlace de Dropbox aquí? El propósito de enlazar un archivo específico a menudo será mantener el control sobre el contenido.
Con el cambio de renombrar post_uploads a upload_references, la consulta SQL que se indica en el paso 2 ya no es válida. El código actualizado es:
SELECT
uploads.id, uploads.user_id, uploads.created_at,
uploads.url, uploads.filesize
FROM uploads
LEFT OUTER JOIN upload_references ON uploads.id = upload_references.upload_id
WHERE upload_references.target_id IS NULL
ORDER BY created_at DESC
LIMIT 100