Inicio de la guía 1. Topología de la solución 2. Aspire como plano de control local 3. Configuración y contratos compartidos 4. Metadatos con SQLite y EF Core 5. API e interfaz de carga 6. Almacenamiento de objetos con MinIO 7. Pipeline de ingesta del worker 8. Extracción y división de texto 9. Artefactos literarios 10. Abstracciones de proveedores de IA 11. Almacenamiento vectorial con Qdrant 12. Flujo de preguntas y recuperación 13. Prompts y citas 14. Pruebas del pipeline 15. Notas de desarrollo local Todas las guías
Navegación de la guíaÍndice y capítulos
Capítulo 6

Almacenamiento de objetos con MinIO

Los archivos originales se guardan en almacenamiento de objetos antes de indexarlos. La implementación local está en RAG.Core/Services/S3ObjectStorage.cs.

Nota de traducción: Esta versión en español fue traducida con ayuda de un LLM y revisada para conservar los términos técnicos, el código y los nombres de archivos en inglés cuando corresponde.
Imagen decorativa del capítulo sobre Almacenamiento de objetos con MinIO
Las claves de objetos empiezan con el ID del documento
var objectKey = $"{documentId:N}/{fileName}";
await storage.UploadAsync(objectKey, stream, contentType, cancellationToken);

Los archivos originales se guardan en almacenamiento de objetos antes de indexarlos. La implementación local está en RAG.Core/Services/S3ObjectStorage.cs.

MinIO se usa porque es compatible con S3 y fácil de ejecutar localmente en Docker. La misma abstracción podría soportar después:

La clave del objeto usa el ID del documento:

{documentId}/{originalFileName}

Esto evita colisiones de nombres de archivo y facilita rastrear un objeto guardado hasta su fila de metadatos.

Conservar archivos originales importa porque los chunks vectoriales son datos derivados. Si más tarde cambian el chunking, la extracción, los embeddings o el análisis, el worker puede reprocesar el documento original.

La abstracción de almacenamiento ahora incluye DeleteAsync además de operaciones de carga y lectura. Eso permite que la eliminación de documentos limpie el objeto original junto con metadatos y puntos vectoriales, que es el soporte mínimo de ciclo de vida que necesita un sistema RAG real de documentos.