4.3 KiB
4.3 KiB
✅ RESUMEN - Gestor de Recursos Multimedia
Fecha: 2025-01-06
Estado: ✅ Implementado
🎯 FUNCIONALIDADES IMPLEMENTADAS
1. Página de Gestión de Recursos ✅
Archivo: admin-panel/src/pages/MediaManagerPage.tsx
Funcionalidades:
- ✅ Listar todos los recursos multimedia
- ✅ Filtros por tipo (imagen/vídeo)
- ✅ Búsqueda por título/descripción
- ✅ Vista en grid con preview
- ✅ Información detallada (tamaño, formato, tags)
- ✅ Eliminar recursos
- ✅ Ver recursos en nueva pestaña
- ✅ Alerta de recursos huérfanos
2. Upload de Recursos ✅
Funcionalidades:
- ✅ Subir imágenes (JPEG, PNG, GIF, WebP, SVG)
- ✅ Subir vídeos (MP4, WebM, OGG)
- ✅ Límite de 50MB por archivo
- ✅ Metadatos: título, descripción, alt_text, tags, prioridad
- ✅ Generación automática de nombres únicos
- ✅ Guardado en
storage/media/ - ✅ Inserción en base de datos
3. Backend API ✅
Archivo: backend/src/routes/media.js
Endpoints:
- ✅
POST /api/media/upload- Subir recurso (autenticado) - ✅
GET /api/media- Listar recursos (con filtros y paginación) - ✅
GET /api/media/:id- Obtener recurso específico - ✅
DELETE /api/media/:id- Eliminar recurso - ✅
GET /api/media/orphaned/list- Recursos huérfanos
Características:
- ✅ Validación de tipos MIME
- ✅ Límite de tamaño (50MB)
- ✅ Hash MD5 para nombres únicos
- ✅ Servir archivos estáticos en
/storage/media/ - ✅ Eliminación física y lógica
📁 ESTRUCTURA
Directorios
backend/
├── storage/
│ └── media/ # Archivos subidos
│ └── {hash}.{ext}
└── src/
└── routes/
└── media.js # API de recursos
admin-panel/
└── src/
└── pages/
└── MediaManagerPage.tsx
Base de Datos
Tabla: tes_content.media_resources
Campos principales:
id- UUIDtype- image | videofile_url- URL públicapath- Ruta físicafilename- Nombre del archivotitle,description,alt_texttags- Array de tagspriority- critica | alta | media | bajafile_size,formatstatus- published | archived
🔧 CONFIGURACIÓN
Variables de Entorno
MEDIA_STORAGE_DIR=/ruta/a/storage/media # Opcional
Límites
- Tamaño máximo: 50MB por archivo
- Tipos permitidos:
- Imágenes: JPEG, PNG, GIF, WebP, SVG
- Vídeos: MP4, WebM, OGG
🚀 USO
Subir Recurso
- Ir a
/mediaen panel admin - Click en "Subir Recurso"
- Seleccionar archivo
- Completar metadatos (opcional)
- Click en "Subir"
Gestionar Recursos
- Ver lista de recursos en grid
- Filtrar por tipo o buscar
- Ver preview de imágenes
- Eliminar recursos no usados
- Ver alerta de recursos huérfanos
Recursos Huérfanos
Los recursos huérfanos son aquellos que:
- Están publicados
- No tienen asociaciones en
content_resource_associations
Se muestran en una alerta amarilla en la parte superior.
📊 ESTADO ACTUAL
Funcionalidades
- ✅ Upload de imágenes/vídeos
- ✅ Listado con filtros
- ✅ Eliminación de recursos
- ✅ Detección de recursos huérfanos
- ✅ Servir archivos estáticos
- ⏳ Asociación a contenido (siguiente paso)
Próximos Pasos
-
Asociar recursos a contenido:
- Desde editor de protocolos
- Desde editor de guías
- Seleccionar recursos existentes
-
Gestión avanzada:
- Editar metadatos
- Reemplazar archivo
- Versiones de recursos
-
Optimización:
- Thumbnails automáticos
- Compresión de imágenes
- Transcoding de vídeos
✅ VERIFICACIÓN
Probar Upload
# 1. Ir a http://localhost:5174/media
# 2. Click en "Subir Recurso"
# 3. Seleccionar una imagen
# 4. Completar formulario
# 5. Click en "Subir"
Verificar API
# Listar recursos
TOKEN=$(curl -s -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@emerges-tes.local","password":"Admin123!"}' \
| python3 -c "import sys, json; print(json.load(sys.stdin)['token'])")
curl -X GET "http://localhost:3000/api/media" \
-H "Authorization: Bearer $TOKEN"
✅ Gestor de recursos multimedia implementado y funcionando!