Almacenamiento de archivos
Descripción
El sistema ofrece un servicio de almacenamiento de archivos que puede ser utilizado por cualquier funcionalidad de la plataforma que necesite guardar imágenes u otros archivos subidos por los usuarios. Es un servicio de soporte transversal: no es una funcionalidad de cara al usuario final por sí misma, sino una capacidad que otras funcionalidades aprovechan.
Actualmente lo utiliza:
- Avatares de usuario: la foto de perfil de cada usuario. Ver 07-usuarios.md.
Flujo genérico de carga
Para subir un archivo, el usuario no lo envía directamente al sistema, sino que lo carga en el almacenamiento en tres pasos:
- Autorización temporal de carga: el sistema entrega una autorización temporal que habilita subir un archivo. Esta autorización es de duración limitada y caduca pasado un tiempo definido por la funcionalidad que la usa (por ejemplo, 5 minutos para avatares).
- Carga directa: el cliente sube el archivo directamente al almacenamiento usando la autorización recibida.
- Confirmación: el cliente confirma la carga. En ese momento se aplican las validaciones que correspondan a la funcionalidad que solicitó el almacenamiento (por ejemplo, que el archivo pertenezca al usuario y que sea de un tipo permitido).
Validaciones según la funcionalidad
Las reglas concretas de cada carga (tipos de archivo aceptados, propiedad del archivo, límites, vigencia de la autorización, etc.) las define la funcionalidad que utiliza el almacenamiento, no el servicio de almacenamiento en sí. El almacenamiento provee la mecánica común de carga; cada funcionalidad decide las restricciones.
Ejemplo: en avatares de usuario se validan la propiedad (el archivo debe pertenecer al propio usuario), los tipos permitidos (JPEG, PNG, WebP) y un cooldown de 24 horas entre cambios. Ver 07-usuarios.md.
Eliminación de archivos
Las funcionalidades que usan el almacenamiento pueden eliminar los archivos que ya no se necesitan (por ejemplo, al eliminar o reemplazar un avatar).
Condiciones de negocio (resumen)
- El almacenamiento es un servicio de soporte transversal, no una funcionalidad de cara al usuario final.
- El flujo de carga es siempre: autorización temporal → carga directa → confirmación.
- La autorización de carga es temporal y caduca.
- Las validaciones (tipo, propiedad, límites) las define cada funcionalidad que usa el almacenamiento.
- Hoy lo utilizan los avatares de usuario. Ver 07-usuarios.md.
Última actualización: 2026-07-02.