He notado algo extraño en mi sitio: después de adjuntar un archivo a un nodo (a través del campo de archivo normal), ese archivo nunca se elimina del servidor . Lo elimino del nodo, guardo ese cambio, pero puedo ver que el archivo todavía está en el servidor.
Esto hace que reemplazar archivos sea muy difícil, porque cuando un usuario intenta adjuntar un reemplazo, el nombre del archivo tiene el sufijo "_0" o "_1" (ya que el archivo original todavía está en el servidor y eso hace que el nombre sea un duplicado) . Eso significa que necesitaríamos encontrar todos los enlaces al archivo y editar cada uno para que coincida con el nuevo nombre de archivo / url. Es un desastre total.
Estoy buscando en línea y nadie parece tener este problema: los archivos deben eliminarse del servidor una vez que se eliminan del nodo.
¿Alguna idea de por qué esto puede estar sucediendo en mi caso? No estoy seguro de por dónde empezar a buscar. Ciertamente, la página de configuración 'Sistema de archivos' no tiene nada de esa naturaleza como una opción que puede haber sido verificada. Y las opciones de campo en sí mismas parecen no tener nada de esa naturaleza que pueda haber configurado inadvertidamente. ¿Alguna otra idea?
Respuestas:
¡Lo tengo! Es una cosa de revisiones. Supongo que tiene sentido. Si tiene habilitadas las revisiones para ese tipo de contenido, mantiene todos sus archivos antiguos en el servidor (asociados con revisiones antiguas), por lo que reemplazar un archivo definitivamente es más difícil. Si intenta eliminarlo y agregarlo nuevamente al nodo, el nombre / enlace se actualiza, como mencioné en mi pregunta. Dado que un archivo con ese nombre se mantiene en el servidor y hay una duplicación de nombre, agrega esos sufijos "_0", "_1", etc. a futuras versiones cargadas del nombre de ese archivo.
Sin embargo, entiendo por qué sucede esto, ya que todo el punto de revisión es poder volver a cualquier versión anterior de la página.
La solución es que en realidad puede eliminar la revisión anterior de la pestaña 'Revisión' o 'Moderar' (si usa Workbench Moderation) que contenía el archivo que está tratando de reemplazar. Luego, cárguelo nuevamente, y el nombre debería coincidir sin tener que regresar y editar los enlaces que apuntan a ese archivo.
¡Espero que tenga sentido y que también ayude a alguien más!
fuente
Tuve el mismo caso de uso (queriendo reemplazar archivos manteniendo el nombre de archivo), y el siguiente código en un módulo personalizado cumplió este objetivo. Este código se basa en el módulo Entity API , por lo que debe agregarse como una dependencia en el archivo .info de su módulo. Comentarios bienvenidos.
Esto permite eliminar archivos inmediatamente después de hacer clic en 'Eliminar' y luego guardar el nodo. Advertencia: esto también significa que cuando elimina un archivo y guarda el nodo, no puede recuperar ese archivo volviendo a una revisión anterior.
fuente
Hice un módulo que elimina archivos huérfanos como se menciona en este hilo:
https://www.drupal.org/project/fancy_file_delete
También puede forzar la eliminación de archivos manualmente y también los archivos no administrados.
fuente
Esto podría ser un problema de permisos en el servidor. Pruebe lo mismo en una instalación limpia: si tiene el mismo problema, entonces depende del servidor y no de Drupal.
¿Hay algo en los registros?
fuente
No tuve suerte al eliminar revisiones antiguas o guardar nodos sin sus archivos adjuntos y volver. Estas son las únicas cosas que siempre funcionan:
Absolutamente odio la segunda opción, por eso estoy buscando otra solución.
(También podría estar saliendo de los límites, ya que tengo un montón de clientes que ejecutan D6).
fuente
También me encontré con este problema con la moderación del banco de trabajo, y la inserción del campo de archivo que en realidad muestra las versiones antiguas de los archivos cargados cuando los archivos con el mismo nombre se vuelven a cargar en diferentes revisiones de un documento.
Para que las cosas funcionen sin problemas, agregue el vid del nodo como una carpeta a la ruta de carga del archivo. Normalmente estoy haciendo algo así.
Ruta de la carpeta = activos / [nodo: nid] - [nodo: título] / [nodo: vid]
Sí, son carpetas largas y feas con locura de subcarpetas, pero puede encontrar archivos muy fácilmente a través de ID o título de nodo, y luego la subcarpeta evita colisiones de nombres para que pueda mantener muchas versiones del mismo archivo con el mismo nombre. Luego, puede eliminar las revisiones anteriores si desea limpiar el espacio.
fuente