Almacenamiento y entrega de medios
Almacenamiento local, servidores de almacenamiento externos (S3, FTP, WebDAV) y el proxy de medios seguro.
TubePress guarda cada vídeo subido, sus versiones transcodificadas y sus recursos de vista previa en disco, y puede transferirlos de forma transparente a uno o más servidores de almacenamiento externos. Esta página explica dónde viven los archivos, cómo el sistema de almacenamientos de medios los distribuye entre backends, y cómo los medios llegan a los espectadores sin exponer los archivos originales.
El almacenamiento se configura en /admin/settings?tab=storage. Puedes ejecutar todo desde el disco local, o añadir backends FTP, compatibles con S3 y WebDAV y dejar que TubePress los vaya llenando en orden.
Cómo TubePress almacena los medios
Las subidas residen en public/uploads/. Cada vídeo tiene su propia carpeta — el video_folder del vídeo — que contiene el archivo fuente original junto a cada versión que produce el transcodificador y los pequeños recursos que necesita el reproductor:
public/uploads/
videos/
a1b2c3d4.../ one folder per video (video_folder)
video.mp4 original upload (source)
video_1080p.mp4 processed source rendition
video_720p.mp4 transcoded rendition
video_480p.mp4 transcoded rendition
timeline.vtt scrub-preview sprite map
preview.mp4 hover-preview clip
thumbnails/ poster images
watermark/ watermark PNG
intros/ pre-roll / post-roll clips
branding/ logo, favicon, backgroundEl transcodificador descubre el archivo fuente buscando el archivo video_<height>p.mp4 más alto, con recurso alternativo a un video.mp4, .webm o .ogg sin procesar. Las versiones de menor calidad se escriben en la misma carpeta, de modo que un único directorio contiene todo lo que necesita un vídeo. Consulta Transcodificación para ver cómo se generan esas versiones.
videos/ solo contiene elementos que aún se están subiendo o transcodificando.Servidores de almacenamiento externos
El sistema de almacenamientos de medios te permite registrar cualquier número de backends. Los nuevos vídeos siempre van al almacenamiento predeterminado; cuando un almacenamiento supera su umbral de disco, TubePress cambia automáticamente las nuevas subidas al siguiente disponible. Los vídeos existentes continúan sirviéndose desde donde fueron escritos, ya que cada vídeo registra su propio storage_id.
Se admiten cuatro tipos de backend — nada más:
| Tipo | Para qué usarlo | Campos de conexión |
|---|---|---|
| Local | Un servidor único, o para comenzar | Ninguno — servido desde public/uploads |
| FTP | VPS de almacenamiento económico o seedbox | Host, puerto (21), usuario, contraseña, ruta remota, SSL/TLS, pasivo |
| S3 | AWS S3, DigitalOcean Spaces, Backblaze, MinIO | Clave de acceso, secreto, bucket, región, endpoint, prefijo |
| WebDAV | Nextcloud y otros hosts WebDAV | URL WebDAV, usuario, contraseña |
Cada almacenamiento remoto también tiene algunos ajustes operativos:
Añadir un backend de almacenamiento
- Abre el editor de almacenamiento. Ve a
/admin/settings?tab=storagey haz clic en Add Storage. - Elige un tipo y nómbralo. Elige Local, FTP, S3 o WebDAV. El formulario cambia para mostrar solo los campos que ese tipo necesita.
- Introduce la URL de medios y las credenciales. Establece la URL de medios pública, luego el host/claves/ruta del backend. Deja una contraseña en blanco al editar para conservar la almacenada.
- Establece las opciones operativas. Elige el estado, el umbral de uso máximo de disco y si deseas firmar las URLs.
- Prueba y guarda. Al guardar, se ejecuta primero una prueba de conexión (y una comprobación del script del monitor si proporcionaste uno). Corrige cualquier comprobación fallida, luego guarda. Opcionalmente, márcalo como predeterminado para que las nuevas subidas vayan allí.
https://cdn.example.com). No es el endpoint FTP/S3 — confundirlas es la causa más común de reproducción rota tras un cambio.El monitor de almacenamiento
Para backends remotos, TubePress puede rastrear el espacio en disco y el estado de salud usando un pequeño script PHP que instalas en el servidor de almacenamiento. En el panel Supervisión de disco del editor de almacenamiento, haz clic en Descargar script del monitor (servido desde /api/storage-monitor-download), súbelo a tu servidor remoto, luego pega su URL pública de vuelta en el campo URL del script del monitor.
Una vez conectado, el editor muestra el uso de disco en tiempo real y la última hora de comprobación, y el umbral de cambio automático usa esas lecturas para saber cuándo un backend está lleno. El script está protegido para que solo tu CMS pueda consultarlo.
Entrega segura de medios
Cuando las URLs seguras están activadas para un almacenamiento, TubePress nunca entrega una ruta de archivo directa. En su lugar, firma un enlace corto y de duración limitada enrutado a través de /media/:
/media/{token}/{expires}/{path}403. La duración predeterminada es de seis horas.uploads/videos/… que se solicita.El token se recalcula y verifica en el lado del servidor en cada solicitud. Para un almacenamiento local, TubePress transmite el archivo directamente con soporte de rango HTTP (para que la búsqueda funcione); para un almacenamiento remoto, verifica el token y luego emite una redirección 302 al archivo en tu CDN. El vídeo sin procesar también tiene límite de velocidad en la capa del servidor web: el editor de almacenamiento genera un fragmento nginx listo para pegar que limita el streaming después de los primeros megabytes, al tiempo que permite que los trabajadores de transcodificación descarguen a velocidad completa con una clave.
CDN & Cloudflare
TubePress está diseñado para funcionar cómodamente detrás de Cloudflare. Hay dos aspectos importantes:
- Las subidas por fragmentos superan el límite de 100 MB. Los resultados de transcodificación se transmiten de vuelta al CMS en piezas a través de
/api/transcode-upload-chunk, por lo que las solicitudes individuales se mantienen por debajo del límite de 100 MB del nivel gratuito de Cloudflare, independientemente del tamaño de la versión. - Recursos con caché larga e invalidación de caché. Los recursos estáticos se sirven con cabeceras de caché largas e inmutables y se invalidan con una consulta de versión en cada lanzamiento, por lo que un proxy puede almacenar en caché de forma agresiva sin servir nunca un archivo desactualizado.
El fragmento nginx por almacenamiento añade cabeceras expires sensatas para vídeo y la ubicación interna opcional /media/ utilizada por la entrega local segura, para que puedas incluirlo directamente en la configuración de tu sitio.
Próximos pasos
¿Todavía con dudas?
Abre un ticket desde tu panel y nuestro equipo te ayudará.