Inicio
›
Servicios Node.js
›
Servicio: s3-manager-ms
Servicios Node.js
Servicio: s3-manager-ms
Propósito: Gestión de archivos IFC en AWS S3. Microservicio dedicado al upload, descarga y organización de archivos de modelos BIM en almacenamiento en la nube.
Tecnología: Node.js 18+ / Express v4.x
Puerto: 3002 (default)
Módulo npm: s3-manager-ms
Propósito de Negocio
Los archivos IFC (modelos BIM) pueden llegar a 1+ GB. Este servicio maneja: - Upload de archivos IFC grandes a AWS S3 - Descarga de archivos para procesamiento - Organización de archivos por proyecto en buckets S3 - Creación de estructura de directorios por proyecto
Endpoints Expuestos
GET /api/healthHealth check del servicio
GET /s3-manager/list-filesLista archivos en bucket S3
GET /s3-manager/get-fileDescarga archivo desde S3
GET /s3-manager/check-project-existsVerifica si proyecto existe en S3
POST /s3-manager/create-base-directoriesCrea estructura de carpetas del proyecto
POST /s3-manager/upload-ifcUpload de archivo IFC (multipart, máx 1.2 GB)
Infraestructura AWS
SDK: @aws-sdk/client-s3 v3.810.0
Upload multipart: @aws-sdk/lib-storage v3.816.0
Presigned URLs: @aws-sdk/s3-request-presigner v3.810.0
Autenticación: Variables de entorno de AWS
Estructura S3
{bucket}
└── {projectId}/
├── models/ ← archivos IFC
└── processed/ ← archivos procesados
Variables de Entorno
PORT
Puerto HTTP (default: 3002)
AWS_REGION
Región AWS (ej: us-east-1)
AWS_ACCESS_KEY_ID
Credencial AWS (sensible )
AWS_SECRET_ACCESS_KEY
Credencial AWS (sensible )
AWS_BUCKET_NAME
Nombre del bucket S3
Validación de Archivos
Tipos aceptados: Solo .ifc
Tamaño máximo: 1.2 GB por archivo
Validación: Multer fileFilter verifica extensión antes de iniciar upload
Rechazo: Otros tipos → HTTP 400 con mensaje de error
Dependencias NPM
@aws-sdk/client-s3
3.810.0
Operaciones S3
@aws-sdk/lib-storage
3.816.0
Upload multipart para archivos grandes
@aws-sdk/s3-request-presigner
3.810.0
URLs pre-firmadas
express
4.18.2
Framework HTTP
multer
2.0.0
Manejo de multipart/form-data
axios
1.9.0
Cliente HTTP
cors
2.8.5
CORS middleware
CORS
Configurado con { origin: "*" } — abierto para todos los orígenes
Rol en Casos de Uso
CU-02: Carga de Modelo IFC
Servicio principal — primer paso antes de llamar a ifc
← Anterior
Servicio · lbp
Siguiente →
01 · Autenticación