PAQUETES / MULTIPART
Dividir paquetes grandes
Multipart separa un payload embebido grande en archivos adyacentes sin perder el manifiesto, el grafo ni la verificación SHA-256 del contenido lógico.
Cuándo usarlo
Úsalo cuando el curso contiene un payload grande —por ejemplo un vídeo, un ZIP SCORM o un binario— y no quieres que ese contenido viaje dentro del único archivo exterior .p2lrn.
curso-split.part001
curso-split.part002
curso-split.part003
Comando básico
Parte de un paquete ya válido. El comando crea un nuevo paquete con el descriptor Multipart y escribe las partes junto al archivo de salida.
p2lrn-multipart curso.p2lrn curso-split.p2lrn --part-size 26214400
--representation <representation-id>Qué cambia dentro del paquete
La representación deja de apuntar directamente al payload grande y pasa a apuntar a un descriptor multipart/*.json. El perfil multipart se declara como requerido.
{
"version": "1",
"mediaType": "video/mp4",
"size": 1503238553,
"byteDigest": "sha256:…",
"parts": [
{
"href": "curso-split.part001",
"size": 26214400,
"byteDigest": "sha256:…"
},
{
"href": "curso-split.part002",
"size": 26214400,
"byteDigest": "sha256:…"
}
]
}
Cómo lo reconstruye el Player
- 1. Descriptor.El Player abre el descriptor multipart del paquete exterior.
- 2. Resolución.Cada
hrefse resuelve de forma relativa a la URL del.p2lrn. - 3. Verificación.Cada
.partNNNse valida con su SHA-256. - 4. Reconstrucción.Las partes se concatenan en el orden declarado.
- 5. Digest final.Se verifica el SHA-256 del payload lógico completo.
- 6. Renderer.Sólo entonces se entrega al renderer normal.
Publicación correcta
El archivo exterior y todas las partes deben quedar accesibles en la misma ruta relativa.
/courses/curso/
├─ curso-split.p2lrn
├─ curso-split.part001
├─ curso-split.part002
├─ curso-split.part003
└─ curso-split.part004
Los href son relativos al paquete exterior. Si una parte falta o cambia, la verificación falla.
SCORM y otros subpaquetes
Cuando una actividad usa una vista package-member, por ejemplo index.html dentro de un ZIP SCORM, multipart conserva el nombre del miembro. El Player reconstruye primero el ZIP lógico y después abre el miembro interno solicitado.
Varios payloads grandes
El comando transforma una representación por ejecución. Si necesitas elegir una concreta, usa --representation. Si repites el proceso sobre un paquete que ya contiene multipart, conserva en el mismo directorio las partes generadas anteriormente y las nuevas.
p2lrn-multipart curso.p2lrn curso-stage1.p2lrn --representation urn:uuid:video-principal --part-size 26214400
p2lrn-multipart curso-stage1.p2lrn curso-final.p2lrn --representation urn:uuid:scorm-grande --part-size 26214400
Para muchos recursos pesados, valora también representar algunos como recursos remotos autorizados en lugar de convertir todo el curso en un conjunto enorme de fragmentos.
Comprobación antes de publicar
Valida el paquete resultante y conserva juntas todas las partes generadas antes de subirlo al servidor.
p2lrn-validate curso-final.p2lrn
p2lrn-inspect curso-final.p2lrn
- OUTEREl paquete exterior valida.
- PARTSTodas las partes existen en la misma ruta pública.
- HASHNinguna parte ha cambiado después de generarse.
- PLAYEREl Player puede reconstruir el payload y renderizarlo.
Ejemplo Multipart
El ejemplo incluido divide un recurso de prueba en varias partes y permite abrir el paquete resultante en el visor para comprobar su reconstrucción.
course.p2lrn\ncourse.part001\ncourse.part002\ncourse.part003\ncourse.part004\nmetadata.json¿Necesitas ayuda con este punto?
El formulario completo está centralizado para no repetirlo en cada artículo técnico.
Contactar