PrintStash v0.6.0: indexar una carpeta de un NAS en su sitio
PrintStash v0.6.0 introdujo bibliotecas externas: indexado de carpetas en su sitio, escritura de vuelta, espejo de colecciones y escaneos periódicos.
PrintStash v0.6.0 introdujo lo que entonces se llamaba External Libraries. Una carpeta local o de un NAS podía seguir siendo la fuente de verdad mientras PrintStash indexaba sus archivos, guardaba metadatos y miniaturas, y presentaba la carpeta como parte de la biblioteca web.
La función era opcional y la gestionaba un superusuario. En la v0.6.2 pasó a llamarse Volúmenes compartidos.
Indexar archivos sin copiarlos
Una biblioteca externa apuntaba a una carpeta visible para el contenedor de la API. PrintStash hasheaba e interpretaba los archivos soportados donde vivían, en lugar de copiar sus bytes al almacenamiento gestionado de la bóveda.
Había dos modos de colección. El modo espejo traducía la jerarquía de carpetas a colecciones anidadas. El modo único colocaba cada archivo indexado en una sola colección elegida.
Reconciliar cambios en las dos direcciones
Un escaneo añadía los archivos nuevos al índice, volvía a hashear los que habían cambiado y mandaba a la papelera los registros de los que faltaban. Las subidas desde la web y las revisiones nuevas también se podían escribir de vuelta en la biblioteca externa elegida.
La escritura de vuelta usaba nombres a prueba de colisiones y nunca reemplazaba un archivo existente. Quitar un modelo o una biblioteca externa solo cambiaba los registros de PrintStash; el borrado definitivo y la limpieza de huérfanos se saltaban los bytes de origen externos.
Abortar cuando un montaje tiene mala pinta
Un recurso compartido de un NAS desmontado puede dejar detrás un directorio vacío. Tratar eso como una biblioteca vacía de verdad mandaría a la papelera todos los registros indexados.
La v0.6.0 añadió comprobaciones que detenían la reconciliación cuando la raíz faltaba, no se podía leer o estaba vacía de forma inesperada mientras seguían existiendo archivos indexados. La carpeta de origen quedaba intacta en todos los casos.
Las bibliotecas activadas podían ejecutarse con un intervalo fijo en segundo plano o escanearse a mano. La v0.6.2 sustituyó después ese intervalo por programaciones con cron y vigilancia del sistema de archivos.
Trabajo de fiabilidad
La versión corrigió una comparación de zonas horarias que podía dejar callado al planificador periódico después de su primer escaneo. También actualizó la API de pruebas del frontend, ya que el modal de subida había empezado a pedir el feature flag de biblioteca externa y la lista de destinos.
La cobertura del backend ejercitaba el espejo de carpetas, la escritura de vuelta, la reconciliación, el comportamiento del planificador y las reglas de seguridad con fixtures reales de STL, 3MF y G-code.
Para la configuración actual, usa la guía de volúmenes compartidos. Incluye montajes de Docker, comportamiento con recursos de red, permisos de escritura y comprobaciones de recuperación.