Lewati ke konten
TubePress — gratis, self-hosted & aktif dikembangkan
Media & transcoding

Penyimpanan & pengiriman media

Penyimpanan lokal, server penyimpanan eksternal (S3, FTP, WebDAV) dan proksi media yang aman.

TubePress menyimpan setiap video yang diunggah, rendisi yang telah ditranskode, dan aset pratinjaunya di disk, serta dapat secara transparan memindahkannya ke satu atau lebih server penyimpanan eksternal. Halaman ini menjelaskan di mana file-file tersebut berada, bagaimana sistem media storages menyebarkannya ke berbagai backend, dan bagaimana media sampai ke penonton tanpa mengekspos file mentah Anda.

Storage dikonfigurasi di /admin/settings?tab=storage. Anda dapat menjalankan sepenuhnya dari disk lokal, atau menambahkan backend FTP, S3-compatible, dan WebDAV dan membiarkan TubePress mengisinya secara bergantian.

Cara TubePress Menyimpan Media

Unggahan berada di public/uploads/. Setiap video mendapat folder-nya sendiri — video_folder video — yang menyimpan sumber asli bersama setiap rendisi yang dihasilkan transcoder dan aset kecil yang dibutuhkan 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, background

Transcoder menemukan sumber dengan memindai file video_<height>p.mp4 tertinggi, dengan fallback ke video.mp4, .webm, atau .ogg mentah. Rendisi yang lebih rendah ditulis ke folder yang sama, sehingga satu direktori berisi semua yang dibutuhkan sebuah video. Lihat Transcoding untuk cara rendisi tersebut dihasilkan.

Lokal adalah area sementara saat CDN diatur. Dengan penyimpanan default eksternal, setiap unggahan diproses secara lokal lalu dihapus dari server aplikasi setelah aman di backend — direktori lokal videos/ hanya pernah menyimpan item yang masih dalam proses unggah atau transcode.

Server Penyimpanan Eksternal

Sistem media storages memungkinkan Anda mendaftarkan sejumlah backend. Video baru selalu dikirim ke penyimpanan default; ketika sebuah penyimpanan melampaui ambang batas disknya, TubePress secara otomatis mengalihkan unggahan baru ke penyimpanan berikutnya yang tersedia. Video yang sudah ada terus dilayani dari tempat asalnya, karena setiap video mencatat storage_id-nya sendiri.

Empat jenis backend yang didukung — tidak ada yang lain:

JenisGunakan untukBidang koneksi
LocalSatu server, atau untuk memulaiTidak ada — dilayani dari public/uploads
FTPVPS penyimpanan murah atau seedboxHost, port (21), user, password, remote path, SSL/TLS, passive
S3AWS S3, DigitalOcean Spaces, Backblaze, MinIOAccess key, secret, bucket, region, endpoint, prefix
WebDAVNextcloud dan host WebDAV lainnyaWebDAV URL, user, password

Setiap penyimpanan remote juga memiliki beberapa pengaturan operasional:

Media URL
Alamat HTTP publik tempat pengunjung memuat file — bukan alamat kontrol FTP/S3.
Status
Active (menerima video baru), Read-only (hanya melayani file yang ada) atau Disabled (offline).
Max disk usage
50–99% (default 90). Ketika tercapai, unggahan baru beralih otomatis ke penyimpanan berikutnya.
Secure URLs
Menandatangani tautan media dengan token yang berakhir — lihat Pengiriman media aman di bawah.

Menambahkan Backend Penyimpanan

  1. Buka editor penyimpanan. Pergi ke /admin/settings?tab=storage dan klik Add Storage.
  2. Pilih jenis dan beri nama. Pilih Local, FTP, S3, atau WebDAV. Formulir akan berubah menampilkan hanya bidang yang diperlukan oleh jenis tersebut.
  3. Masukkan URL media dan kredensial. Atur Media URL publik, lalu host/kunci/path untuk backend. Biarkan password kosong saat mengedit untuk mempertahankan yang tersimpan.
  4. Atur opsi operasional. Pilih status, ambang batas penggunaan disk maksimal, dan apakah akan menandatangani URL.
  5. Uji dan simpan. Menyimpan terlebih dahulu menjalankan uji koneksi (dan pemeriksaan monitor-script jika Anda menyediakannya). Perbaiki pemeriksaan yang gagal, lalu simpan. Secara opsional tandai sebagai default agar unggahan baru masuk ke sana.
Media URL vs. alamat kontrol. Media URL adalah yang diambil browser (misalnya https://cdn.example.com). Ini bukan endpoint FTP/S3 — mencampurkan keduanya adalah penyebab paling umum dari pemutaran yang rusak setelah pergantian.

Monitor Penyimpanan

Untuk backend remote, TubePress dapat melacak ruang disk dan kesehatan menggunakan skrip PHP kecil yang Anda instal di kotak penyimpanan. Di panel Disk Monitoring editor penyimpanan, klik Download monitor script (dilayani dari /api/storage-monitor-download), unggah ke server remote Anda, lalu tempel URL publiknya kembali ke bidang Monitor script URL.

Setelah terhubung, editor menampilkan penggunaan disk secara langsung dan waktu pemeriksaan terakhir, dan ambang batas auto-switch menggunakan pembacaan tersebut untuk mengetahui kapan backend penuh. Skrip tersebut dikunci sehingga hanya CMS Anda yang dapat mengkuerinya.

Layak dilakukan di setiap kotak CDN. Tanpa monitor, TubePress tidak dapat membaca penggunaan disk remote, sehingga auto-switch max-usage hanya dapat bertindak pada penyimpanan yang dapat diukurnya.

Pengiriman Media Aman

Ketika Secure URLs aktif untuk sebuah penyimpanan, TubePress tidak pernah memberikan path file langsung. Sebaliknya, ia menandatangani tautan singkat yang dibatasi waktu yang dirutekan melalui /media/:

/media/{token}/{expires}/{path}
token
HMAC-SHA256 16 karakter dari path dan waktu kedaluwarsa, ditandatangani dengan rahasia privat penyimpanan tersebut.
expires
Stempel waktu Unix; setelah terlewati, tautan mengembalikan 403. Masa berlaku default adalah enam jam.
path
File di bawah uploads/videos/… yang diminta.

Token dihitung ulang dan diperiksa di sisi server pada setiap permintaan. Untuk penyimpanan lokal, TubePress mengalirkan file itu sendiri dengan dukungan HTTP range (sehingga pencarian berfungsi); untuk penyimpanan remote, ia memverifikasi token kemudian mengeluarkan redirect 302 ke file di CDN Anda. Video mentah juga dibatasi laju di lapisan server web: editor penyimpanan menghasilkan cuplikan Nginx siap-tempel yang membatasi streaming setelah beberapa megabyte pertama, sambil membiarkan pekerja transcode menarik dengan kecepatan penuh menggunakan kunci.

Token terikat pada path, kedaluwarsa, dan rahasia. Merotasi rahasia penyimpanan membatalkan semua tautan yang beredar, dan tautan yang kedaluwarsa berhenti bekerja dengan sendirinya. Pasangkan secure URLs dengan cuplikan rate-limit untuk hambatan anti-scraping yang bermakna. Lihat Security.

CDN & Cloudflare

TubePress dirancang untuk berjalan nyaman di belakang Cloudflare. Dua hal penting:

  • Unggahan chunked melewati batas 100 MB. Hasil transcode dialirkan kembali ke CMS dalam potongan melalui /api/transcode-upload-chunk, sehingga permintaan individual tetap di bawah batas 100 MB tier gratis Cloudflare, tidak peduli seberapa besar rendisinya.
  • Aset cache-lama, cache-busted. Aset statis dilayani dengan header cache panjang dan tidak berubah, dan di-bust oleh kueri versi pada setiap rilis, sehingga proxy dapat melakukan cache secara agresif tanpa pernah menyajikan file yang usang.

Cuplikan Nginx per-penyimpanan menambahkan header expires yang wajar untuk video dan lokasi internal /media/ opsional yang digunakan oleh pengiriman lokal yang aman, sehingga Anda dapat langsung memasukkannya ke dalam konfigurasi situs Anda.

Langkah Berikutnya

Masih kesulitan?

Buka tiket dari dasbor Anda dan tim kami akan membantu Anda.

Coba demo langsung → Unduh TubePress →