En este artículo explico cómo servir archivos privados almacenados en Backblaze B2 desde un backend con FastAPI, abordando seguridad, rendimiento y buenas prácticas para no exponer directamente el bucket ni usar almacenamiento local temporal.
Objetivo: almacenar archivos en un bucket privado de B2, permitir descargas seguras desde FastAPI, evitar URLs públicas y prevenir cacheo o almacenamiento temporal en el servidor.
Configuración en Backblaze B2: crea un bucket y marca su visibilidad como privada, genera una Application Key con permisos limitados solo a las operaciones necesarias, y toma nota del identificador y la clave para autenticar desde tu backend. Backblaze B2 es una alternativa rentable y compatible con S3 para almacenamiento de objetos.
Conexión desde Python: usa la librería oficial b2sdk para autenticar y acceder a archivos. En lugar de exponer enlaces públicos, tienes dos enfoques recomendados: generar enlaces temporales firmados con permiso de descarga o descargar el archivo desde B2 y servirlo directamente al cliente en streaming. El streaming evita almacenar el archivo en disco y mantiene el control de acceso en tu aplicación.
Patrón seguro con FastAPI: protege la ruta con autenticación y autorización adecuadas, por ejemplo tokens JWT o sesiones. Al recibir una petición válida, autentica con B2 mediante b2sdk, solicita el objeto por nombre o id y transmite el contenido al cliente con un StreamingResponse de FastAPI. Ajusta cabeceras como Content-Disposition para forzar descarga cuando proceda y Cache-Control no-store para evitar cacheo intermedio.
Recomendaciones prácticas: limita permisos de la Application Key a solo lectura para el bucket concreto, registra accesos y errores, aplica límites de tamaño y tiempos de espera en las respuestas, y maneja errores de red o cuotas de B2 con reintentos exponenciales. Para archivos muy grandes considera el streaming por partes y control de ancho de banda.
Ventajas de este enfoque: mantienes el bucket privado sin URLs públicas, controlas la autorización a nivel de aplicación, no dependes de almacenamiento temporal en el servidor y puedes auditar descargas. Backblaze B2 ofrece buena relación coste y compatibilidad con soluciones cloud habituales.
Si necesitas integrar este flujo dentro de una solución más amplia, en Q2BSTUDIO desarrollamos aplicaciones a medida y software a medida que incluyen integración con servicios cloud, seguridad y soluciones de inteligencia artificial. Podemos ayudarte a diseñar la arquitectura que incluya almacenamiento seguro en B2 y un backend con FastAPI optimizado para producción. Conoce nuestros servicios de desarrollo de aplicaciones y software a medida y nuestros servicios cloud para AWS y Azure.
Palabras clave relacionadas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Si quieres una solución completa que incluya integración segura de almacenamiento B2 con APIs modernas como FastAPI, contacta a Q2BSTUDIO para una propuesta a medida.