Materi kreatif video adalah alur kerja yang padat data. Satu Adstacker proyek dapat mencakup klip sumber, thumbnail, video yang dinormalisasi, audio yang diekstrak, overlay yang dapat digunakan kembali, dan variasi yang sudah jadi. Kami memerlukan unggahan yang tidak membebani application server, validasi yang andal, lokasi output yang dapat diprediksi, dan pembersihan untuk pekerjaan yang ditinggalkan.
Amazon S3 adalah lapisan aset yang tangguh di balik alur kerja tersebut. Adstacker menggunakannya untuk memindahkan file besar langsung dari kreator ke penyimpanan, mengatur setiap tahapan proyek, dan membuat video yang sudah jadi tersedia untuk diunduh.
Tantangan: aset video berlipat ganda dengan cepat
Pengujian kreatif memungkinkan sekumpulan kecil klip menghasilkan banyak variasi—dan menciptakan masalah pengelolaan aset. Sebuah proyek dapat dimulai dengan rekaman hook, body, dan CTA, kemudian menghasilkan salinan yang dinormalisasi, audio, overlay dengan keterangan, thumbnail, dan output MP4 atau MOV akhir.
Memindahkan setiap byte melalui API akan memperlambat unggahan dan menghabiskan bandwidth server. Nama file yang tidak teratur akan menyulitkan percobaan ulang dan meninggalkan aset yatim piatu ketika seorang kreator menutup tab di tengah proses unggahan.
Penyimpanan harus menjadi bagian yang disengaja dari pipeline produksi.
Pendekatan Kami: S3 di Seluruh Siklus Hidup Aset
S3 terlibat mulai dari pembuatan proyek hingga pengunduhan akhir. Backend menangani otorisasi, manifest, validasi, dan status pekerjaan; S3 menangani objek-objek besar.
Arsitektur

Pembagian ini memberikan jalur langsung dan tangguh bagi file media ke penyimpanan.
1. Unggah video berukuran besar langsung dari browser
Ketika seorang kreator memulai proyek, Adstacker membuat manifest video sumber dan mengembalikan presigned S3 POST untuk setiap file. Browser mengirimkan file langsung ke S3 alih-alih memproxy-nya melalui backend.
S3 menerapkan batasan unggahan yang ditandatangani: content type yang dipatok dan rentang ukuran yang diizinkan. Ini menghentikan unggahan kosong atau berukuran terlalu besar sebelum masuk, sementara permintaan berumur pendek membatasi apa yang dapat diunggah oleh browser.
Jika sesi terganggu, Adstacker menerbitkan ulang URL baru untuk video yang tertunda. Ini juga memeriksa S3 selama melanjutkan, sehingga objek yang terlewat completion callback masih dapat direkonsiliasi dan divalidasi.
2. Verifikasi apa yang tiba sebelum memprosesnya
Unggahan yang selesai di browser tidak cukup untuk memulai rendering. Backend menggunakan S3 HEAD untuk mengonfirmasi objek, membaca ukuran dan ETag-nya, dan menyimpan ETag tersebut dengan video yang divalidasi.
Selanjutnya, Adstacker mengunduh objek sementara untuk validasi FFprobe. Kami mengonfirmasi bahwa file tersebut dapat dibaca dan durasi serta resolusi efektif memenuhi persyaratan proyek. File yang tidak valid menerima alasan penolakan yang berguna dan dihapus; kegagalan pembacaan sementara membiarkan objek tetap di tempat untuk dicoba ulang.
Setiap video melewati siklus hidup yang jelas: tertunda, mengunggah, terunggah, memvalidasi, tervalidasi, atau ditolak. Proyek hanya berjalan setelah setiap aset yang diharapkan divalidasi, dan pembaruan atomik mencegah callback duplikat menghitung dua kali sebuah video.
3. Buat setiap output dapat diprediksi dan digunakan kembali
Adstacker menggunakan jalur S3 deterministik berdasarkan proyek, jenis aset, kategori, dan variasi. Media yang dinormalisasi dan audio yang diekstrak disimpan terpisah dari overlay yang di-render dan kombinasi akhir.
Organisasi tersebut membantu pipeline dalam tiga cara:
- Pencarian Langsung: Pekerja dapat menemukan secara persis input atau output yang terkait dengan proyek dan variasi.
- Penggunaan Kembali yang Efisien: Overlay yang dapat digunakan kembali disimpan sekali dan dapat mendukung lebih dari satu kombinasi akhir.
- Percobaan Ulang Idempoten: Percobaan ulang menulis ke key yang diharapkan sama, menghindari jejak ekspor duplikat yang terus bertambah.
Rekaman video akhir menyimpan key S3 dan URL untuk output, thumbnail, dan—jika relevan—varian MOV. Aplikasi kemudian dapat menyediakan format yang siap.
4. Berikan akses dengan aman dan bersihkan pekerjaan yang belum selesai
Bucket S3 bersifat pribadi. Adstacker mengeluarkan URL unduhan bertanda tangan dengan batas waktu, secara opsional dengan nama file unduhan, sehingga aset tidak memerlukan paparan publik.
Tidak setiap unggahan menjadi proyek yang selesai. Pembersihan terjadwal mengidentifikasi proyek-proyek yang tidak lengkap dan menghapus objek sumber S3 yang tersisa. Unggahan yang ditolak dihapus segera setelah validasi gagal.
Aturan siklus hidup ini membatasi penyimpanan yang terbengkalai sambil mempertahankan riwayat proyek.
Contoh dunia nyata: unggahan yang terinterupsi tidak berarti memulai dari awal
Bayangkan seorang pemasar mengunggah enam klip, lalu menutup browser setelah empat klip mencapai S3. Saat kembali, Adstacker memulihkan sesi unggahan dan menyediakan permintaan presigned baru untuk klip yang belum selesai. Ini juga memeriksa apakah sebuah file mencapai S3 bahkan jika completion callback-nya hilang.
Setelah keenam file diverifikasi dan divalidasi, proyek masuk ke pemrosesan. Sumber, media yang disiapkan, overlay, thumbnail, dan variasi akhir tetap terorganisir di bawah key yang diketahui untuk setiap langkah selanjutnya.
Penyimpanan yang dirancang untuk kecepatan kreatif
Amazon S3 memungkinkan Adstacker memperlakukan aset video sebagai siklus hidup yang terkelola: unggah langsung, verifikasi objek, validasi media, buat output yang dapat diprediksi, otorisasi unduhan, dan bersihkan pekerjaan yang belum selesai. Hal itu memungkinkan pipeline kreatif fokus pada pengubahan klip menjadi variasi yang dapat diuji.
Unggah aset Anda ke Adstacker, bangun kombinasi yang ingin Anda uji, dan biarkan platform mengelola alur kerja penyimpanan di balik setiap render.
Tumpukan Teknologi: Amazon S3 · AWS SDK for JavaScript · Presigned S3 POSTs · NestJS · FFprobe · AWS ECS Fargate · MongoDB
Baca selengkapnya dari tim kami
1. Layanan Ekspor vs. Pipeline Editor Video

