Armazenamento e entrega de mídia
Armazenamento local, servidores de armazenamento externos (S3, FTP, WebDAV) e o proxy de mídia seguro.
O TubePress mantém cada vídeo enviado, suas rendições transcodificadas e seus ativos de pré-visualização no disco, e pode transferi-los de forma transparente para um ou mais servidores de armazenamento externos. Esta página explica onde os arquivos ficam, como o sistema de armazenamentos de mídia os distribui entre os backends, e como a mídia chega aos espectadores sem expor seus arquivos brutos.
O armazenamento é configurado em /admin/settings?tab=storage. Você pode operar inteiramente a partir do disco local, ou adicionar backends FTP, compatíveis com S3 e WebDAV e deixar o TubePress preenchê-los em sequência.
Como o TubePress armazena mídia
Os uploads ficam em public/uploads/. Cada vídeo tem sua própria pasta — o video_folder do vídeo — que contém o arquivo fonte original junto com cada rendição que o transcodificador produz e os pequenos ativos necessários ao player:
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, backgroundO transcodificador descobre o arquivo fonte procurando o arquivo video_<height>p.mp4 de maior resolução, com fallback para um video.mp4, .webm ou .ogg bruto. As rendições de menor qualidade são escritas na mesma pasta, de modo que um único diretório contém tudo de que um vídeo precisa. Veja Transcodificação para saber como essas rendições são geradas.
videos/ contém apenas itens que ainda estão sendo enviados ou transcodificados.Servidores de armazenamento externos
O sistema de armazenamentos de mídia permite registrar qualquer número de backends. Os novos vídeos sempre vão para o armazenamento padrão; quando um armazenamento ultrapassa seu limite de disco, o TubePress automaticamente redireciona os novos uploads para o próximo disponível. Os vídeos existentes continuam sendo servidos de onde foram gravados, pois cada vídeo registra seu próprio storage_id.
Quatro tipos de backend são suportados — nada além destes:
| Tipo | Use para | Campos de conexão |
|---|---|---|
| Local | Um único servidor, ou para começar | Nenhum — servido de public/uploads |
| FTP | VPS de armazenamento barato ou seedbox | Host, porta (21), usuário, senha, caminho remoto, SSL/TLS, passivo |
| S3 | AWS S3, DigitalOcean Spaces, Backblaze, MinIO | Chave de acesso, segredo, bucket, região, endpoint, prefixo |
| WebDAV | Nextcloud e outros hosts WebDAV | URL WebDAV, usuário, senha |
Todo armazenamento remoto também possui algumas configurações operacionais:
Adicionando um backend de armazenamento
- Abra o editor de armazenamento. Acesse
/admin/settings?tab=storagee clique em Add Storage. - Escolha um tipo e dê um nome. Escolha Local, FTP, S3 ou WebDAV. O formulário muda para exibir apenas os campos necessários para aquele tipo.
- Insira a URL de mídia e as credenciais. Defina a URL de Mídia pública, depois o host/chaves/caminho para o backend. Deixe a senha em branco ao editar para manter a armazenada.
- Defina as opções operacionais. Escolha o status, o limite máximo de uso de disco e se deseja assinar as URLs.
- Teste e salve. Ao salvar, primeiro executa um teste de conexão (e uma verificação do script de monitoramento, se fornecido). Corrija qualquer verificação com falha, depois salve. Opcionalmente, marque-o como padrão para que os novos uploads sejam enviados para lá.
https://cdn.example.com). Não é o endpoint FTP/S3 — confundir os dois é a causa mais comum de falha na reprodução após uma troca.O monitor de armazenamento
Para backends remotos, o TubePress pode monitorar o espaço em disco e a saúde usando um pequeno script PHP que você instala no servidor de armazenamento. No painel Monitoramento de Disco do editor de armazenamento, clique em Baixar script de monitoramento (servido de /api/storage-monitor-download), faça o upload para seu servidor remoto e cole a URL pública de volta no campo URL do script de monitoramento.
Uma vez conectado, o editor mostra o uso de disco em tempo real e o horário da última verificação, e o limite de alternância automática usa essas leituras para saber quando um backend está cheio. O script é protegido por chave para que apenas o seu CMS possa consultá-lo.
Entrega segura de mídia
Quando as URLs seguras estão ativadas para um armazenamento, o TubePress nunca fornece um caminho de arquivo direto. Em vez disso, assina um link curto e com tempo limitado roteado através de /media/:
/media/{token}/{expires}/{path}403. A vida útil padrão é de seis horas.uploads/videos/… que está sendo solicitado.O token é recomputado e verificado no lado do servidor a cada requisição. Para um armazenamento local, o TubePress transmite o arquivo diretamente com suporte a HTTP range (para que o seeking funcione); para um armazenamento remoto, ele verifica o token e então emite um redirecionamento 302 para o arquivo no seu CDN. O vídeo bruto também tem limite de taxa na camada do servidor web: o editor de armazenamento gera um snippet nginx pronto para colar que limita o streaming após os primeiros megabytes, enquanto permite que os workers de transcodificação baixem em velocidade total com uma chave.
CDN & Cloudflare
O TubePress foi desenvolvido para funcionar confortavelmente atrás do Cloudflare. Dois aspectos são importantes:
- Os uploads fragmentados contornam o limite de 100 MB. Os resultados de transcodificação são transmitidos de volta para o CMS em partes via
/api/transcode-upload-chunk, portanto as requisições individuais permanecem abaixo do limite de 100 MB do plano gratuito do Cloudflare, independentemente do tamanho da rendição. - Ativos com cache longo e invalidação de cache. Os ativos estáticos são servidos com cabeçalhos de cache longos e imutáveis, invalidados por uma query de versão a cada lançamento, para que um proxy possa fazer cache agressivamente sem jamais servir um arquivo desatualizado.
O snippet nginx por armazenamento adiciona cabeçalhos expires sensatos para vídeo e o local interno opcional /media/ usado pela entrega local segura, para que você possa incluí-lo diretamente na configuração do seu site.
Próximos passos
Ainda com dúvidas?
Abra um ticket pelo painel e nossa equipe vai ajudá-lo.