Purga de imágenes no utilizadas

stripTM

Nuevo usuario
Hola, por lo que veo si a un producto le añades una imagen esta la almacena en ../media/catalog/product/a/b/abzzzz.jpg donde a y b son las primeras iniciales del nombre de la imagen.

Si posteriormente eliminas la imagen del producto esta sigue quedando en disco ocupando espacio.

¿Hay alguna forma de purgar estas imágenes y liberar disco?
 

Xarlie

Super Moderador
Miembro del equipo
El sistema no las elimina porque la imagen se categoriza en funcion de su nombre, pero la misma imagen puede ser utilizada por varios productos.

En principio no hay una solución para borrar imágenes, tendrás que hacerlo manualmente.
 

defcon2

Nuevo usuario
Vamos a ver si se me ocurre algo, porque supongo que nuestros servers deben estar llenos de "basura", cuando tenga algo aviso
 

Xarlie

Super Moderador
Miembro del equipo
La solución es buscar por toda la base de datos y eliminar aquellas imágenes que no están presentes.
Pasos:
- Guardas todas las que hay en los directorios en un array
- Guardas todas las de la base de datos en otro array.
- Mezclas y extrapolas aquellas que no estan en la base de datos pero sí en el directorio de imágenes y las eliminas.
 

stripTM

Nuevo usuario
Si están en base de datos se supone que es porque son muchas y no conviene tenerlas en memoria, yo iría más a por una solución tipo:

Cargar las rutas de las imágenes que hay en disco en una tabla y luego sacar las que no están en la base de datos de magento y eliminarlas.
 

Xarlie

Super Moderador
Miembro del equipo
También, pero te ahorras bastante más código: crear tabla, conexión, consulta... y si es algo puntual y temporal tampoco importa mucho ¿no?
 

stripTM

Nuevo usuario
Me metieron tanta caña en la universidad con esto que parece que tuviese tatuado "Una tabla por definición no entra en memoria" ;-)
 

defcon2

Nuevo usuario
El sistema no las elimina porque la imagen se categoriza en funcion de su nombre, pero la misma imagen puede ser utilizada por varios productos.

En principio no hay una solución para borrar imágenes, tendrás que hacerlo manualmente.
No estoy de acuerdo contigo Xarlie, resulta ser que cargue la misma imagen, con el mismo nombre, dos veces y las tengo duplicadas :niidea: de todas formas mi compañera esta trabajando en una purga, que lo que hace es comparar db con disco y mostrarlas en una grilla, por si alguien tiene dos DB distintas para dos tiendas en lugar de todo en la misma, y las imagenes vayan al mismo directorio, por ejemplo por NFS como es mi caso.
 

Xarlie

Super Moderador
Miembro del equipo
No se puede ser... pero como en teoría se categorizan por el nombre del fichero pues lo lógico es que sobreescriban, pero yo siempre me cuido de tener imagenes diferentes para cada producto, tanto por posicionamiento como para organización mía :)
 

stripTM

Nuevo usuario
Si subes una imagen con el mismo nombre magento le va añadiendo prefijos para no machacar a la que ya tuvieses.
 

stripTM

Nuevo usuario
Finalmente monté un script que toma todas las rutas de imágenes que hay en la base de datos, y todas las imágenes que hay en disco y aquellas que no están referenciadas las elimina.

El código no está muy cuiado como publicarlo, pero si a alguien le interesa que me avise.
 
Arriba