Vai al contenuto
TubePress — gratuito, self-hosted & attivamente mantenuto
Media e transcodifica

Storage e distribuzione dei media

Storage locale, server di storage esterni (S3, FTP, WebDAV) e il proxy sicuro dei media.

TubePress conserva su disco ogni video caricato, le sue versioni transcodificate e le anteprime associate, e può trasferirle in modo trasparente su uno o più server di archiviazione esterni. Questa pagina spiega dove risiedono i file, come il sistema media storages li distribuisce tra i backend e come i contenuti raggiungono i visitatori senza esporre i file originali.

L'archiviazione si configura in /admin/settings?tab=storage. È possibile operare interamente dal disco locale, oppure aggiungere backend FTP, compatibili con S3 e WebDAV e lasciare che TubePress li riempia a turno.

Come TubePress archivia i media

I caricamenti risiedono in public/uploads/. Ogni video ha la propria cartella — il video_folder del video — che contiene il sorgente originale insieme a ogni versione prodotta dal transcodificatore e alle risorse di cui il player ha bisogno:

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, background

Il transcodificatore individua il sorgente cercando il file video_<height>p.mp4 di risoluzione più alta, con fallback su video.mp4, .webm o .ogg non elaborati. Le versioni a risoluzione inferiore vengono scritte nella stessa cartella, quindi una singola directory contiene tutto ciò che un video necessita. Consulta Transcoding per sapere come vengono generate tali versioni.

Il disco locale è un'area temporanea quando è configurato un CDN. Con un'archiviazione predefinita esterna, ogni caricamento viene elaborato localmente e poi eliminato dal server applicativo una volta trasferito in modo sicuro sul backend — la directory locale videos/ contiene solo elementi ancora in fase di caricamento o transcodifica.

Server di archiviazione esterni

Il sistema media storages consente di registrare un numero qualsiasi di backend. I nuovi video vengono sempre indirizzati all'archiviazione predefinita; quando un'archiviazione supera la soglia di utilizzo del disco, TubePress reindirizza automaticamente i nuovi caricamenti a quella successiva disponibile. I video esistenti continuano a essere serviti dal backend in cui sono stati scritti, poiché ogni video registra il proprio storage_id.

Sono supportati quattro tipi di backend — nessun altro:

TipoUsoCampi di connessione
LocalUn singolo server, o per iniziareNessuno — servito da public/uploads
FTPVPS di archiviazione economico o seedboxHost, porta (21), utente, password, percorso remoto, SSL/TLS, passivo
S3AWS S3, DigitalOcean Spaces, Backblaze, MinIOChiave di accesso, secret, bucket, regione, endpoint, prefisso
WebDAVNextcloud e altri host WebDAVURL WebDAV, utente, password

Ogni archiviazione remota dispone anche di alcune impostazioni operative:

Media URL
L'indirizzo HTTP pubblico da cui i visitatori caricano i file — non l'indirizzo di controllo FTP/S3.
Stato
Attivo (riceve nuovi video), Sola lettura (serve solo i file esistenti) o Disabilitato (offline).
Utilizzo massimo del disco
50–99% (predefinito 90). Al raggiungimento della soglia, i nuovi caricamenti passano automaticamente all'archiviazione successiva.
URL sicuri
Firma i link media con un token a scadenza — vedi Distribuzione sicura dei media più avanti.

Aggiungere un backend di archiviazione

  1. Apri l'editor di archiviazione. Vai a /admin/settings?tab=storage e clicca su Add Storage.
  2. Scegli un tipo e assegna un nome. Scegli tra Local, FTP, S3 o WebDAV. Il modulo si aggiorna mostrando solo i campi necessari per quel tipo.
  3. Inserisci l'URL media e le credenziali. Imposta il Media URL pubblico, quindi host/chiavi/percorso per il backend. Lascia la password vuota durante la modifica per mantenere quella memorizzata.
  4. Imposta le opzioni operative. Scegli lo stato, la soglia di utilizzo massimo del disco e se firmare gli URL.
  5. Verifica e salva. Il salvataggio esegue prima un test di connessione (e un controllo dello script monitor se ne hai fornito uno). Correggi eventuali errori, poi salva. Facoltativamente, impostalo come predefinito affinché i nuovi caricamenti vengano indirizzati lì.
Media URL vs. indirizzo di controllo. Il Media URL è quello che i browser richiedono (ad esempio https://cdn.example.com). Non è l'endpoint FTP/S3 — confonderli è la causa più comune di problemi di riproduzione dopo un cambio di backend.

Il monitor di archiviazione

Per i backend remoti, TubePress può monitorare lo spazio su disco e lo stato di salute tramite un piccolo script PHP da installare sul server di archiviazione. Nel pannello Disk Monitoring dell'editor di archiviazione, clicca su Download monitor script (servito da /api/storage-monitor-download), caricalo sul tuo server remoto, poi incolla il suo URL pubblico nel campo Monitor script URL.

Una volta connesso, l'editor mostra l'utilizzo del disco in tempo reale e l'ora dell'ultimo controllo, e la soglia di cambio automatico utilizza questi dati per sapere quando un backend è pieno. Lo script è protetto da chiave in modo che solo il tuo CMS possa interrogarlo.

Consigliato su ogni box CDN. Senza il monitor, TubePress non può leggere l'utilizzo del disco remoto, quindi il cambio automatico per utilizzo massimo può agire solo sulle archiviazioni che riesce a misurare.

Distribuzione sicura dei media

Quando Secure URLs è attivo per un'archiviazione, TubePress non fornisce mai un percorso file diretto. Invece firma un link breve e a tempo limitato instradato attraverso /media/:

/media/{token}/{expires}/{path}
token
Un HMAC-SHA256 di 16 caratteri del percorso e della scadenza, firmato con il secret privato di quella archiviazione.
expires
Un timestamp Unix; dopo la sua scadenza il link restituisce 403. La durata predefinita è sei ore.
path
Il file in uploads/videos/… che viene richiesto.

Il token viene ricalcolato e verificato lato server a ogni richiesta. Per un'archiviazione locale, TubePress trasmette il file in streaming con supporto HTTP range (così la ricerca funziona); per un'archiviazione remota verifica il token e poi emette un redirect 302 verso il file sul tuo CDN. Il video grezzo è anche soggetto a rate limiting a livello di web server: l'editor di archiviazione genera uno snippet Nginx pronto all'uso che limita lo streaming dopo i primi megabyte, consentendo ai worker di transcodifica di operare a piena velocità con una chiave.

I token sono legati al percorso, alla scadenza e al secret. Ruotare il secret di un'archiviazione invalida tutti i link esistenti, e i link scaduti smettono di funzionare autonomamente. Abbina gli URL sicuri allo snippet di rate limit per una barriera anti-scraping efficace. Consulta Security.

CDN & Cloudflare

TubePress è progettato per operare senza problemi dietro Cloudflare. Due aspetti sono fondamentali:

  • I caricamenti a blocchi aggirano il limite di 100 MB. I risultati della transcodifica vengono inviati al CMS a pezzi tramite /api/transcode-upload-chunk, quindi le singole richieste rimangono al di sotto del limite di 100 MB del piano gratuito di Cloudflare, indipendentemente dalla dimensione della versione.
  • Asset con cache lunga e cache-busting. Le risorse statiche vengono servite con intestazioni di cache lunghe e immutabili, aggiornate da una query di versione a ogni rilascio, così un proxy può memorizzare nella cache in modo aggressivo senza mai servire un file obsoleto.

Lo snippet Nginx per singola archiviazione aggiunge intestazioni expires appropriate per il video e la posizione interna opzionale /media/ usata dalla distribuzione locale sicura, così puoi inserirlo direttamente nella configurazione del tuo sito.

Prossimi passi

Ancora bloccato?

Apri un ticket dalla tua dashboard e il nostro team ti aiuterà.

Prova la demo live → Scarica TubePress →