Videokreativt arbejde er en data-tung arbejdsgang. Et Adstacker-projekt kan omfatte kildeklip, miniaturer, normaliserede videoer, udtrækket lyd, genanvendelige overlays og færdige variationer. Vi har brug for uploads, der ikke overbelaster applikationsserveren, pålidelig validering, forudsigelige outputplaceringer og oprydning af uafsluttet arbejde.
Amazon S3 er det holdbare aktivlag bag denne arbejdsgang. Adstacker bruger det til at flytte store filer direkte fra skabere til lager, organisere hver fase af et projekt og gøre færdige videoer tilgængelige for download.
Udfordringen: videoaktiver mangedobles hurtigt
Kreativ test gør det muligt for et lille sæt klip at producere mange variationer – og skaber et aktivstyringsproblem. Et projekt kan begynde med hook-, body- og CTA-optagelser, derefter producere normaliserede kopier, lyd, tekstede overlays, miniaturer og endelige MP4- eller MOV-output.
At flytte hver eneste byte gennem API'en ville forsinke uploads og forbruge serverbåndbredde. Løse filnavne ville gøre genforsøg vanskelige og efterlade forældreløse aktiver, når en skaber lukker en fane midt under en upload.
Lagerplads skal være en bevidst del af produktionspipelinen.
Vores tilgang: S3 gennem hele aktivets livscyklus
S3 er involveret fra projektets oprettelse til endelig download. Backend håndterer autorisation, manifester, validering og jobstatus; S3 håndterer de store objekter.
Arkitektur

Denne opdeling giver mediefiler en direkte, holdbar vej til lagerplads.
1. Upload store videoer direkte fra browseren
Når en skaber starter et projekt, opretter Adstacker et kildevideo-manifest og returnerer en presigned S3 POST for hver fil. Browseren sender filen direkte til S3 i stedet for at proxy'e den gennem backend.
S3 håndhæver de signerede uploadbegrænsninger: en fastlåst indholdstype og et tilladt størrelsesinterval. Disse stopper tomme eller for store uploads, før de lander, mens den kortlivede anmodning begrænser, hvad browseren kan uploade.
Hvis en session afbrydes, genudsteder Adstacker nye URL'er for afventende videoer. Den kontrollerer også S3 under genoptagelse, så et objekt, der missede fuldførelses-callbacket, stadig kan afstemmes og valideres.
2. Bekræft hvad der er ankommet, før det behandles
En upload, der fuldføres i browseren, er ikke nok til at starte rendering. Backend bruger S3 HEAD til at bekræfte objektet, læse dets størrelse og ETag og gemme den ETag med den validerede video.
Dernæst downloader Adstacker objektet midlertidigt til FFprobe-validering. Vi bekræfter, at det er læsbart, og at varighed og effektive opløsning opfylder projektkravene. Ugyldige filer modtager en nyttig afvisningsårsag og slettes; forbigående læsefejl lader objektet være på plads til genforsøg.
Hver video gennemgår en klar livscyklus: afventende, uploader, uploadet, validerer, valideret eller afvist. Et projekt skrider kun frem, når hvert forventet aktiv er valideret, og atomare opdateringer forhindrer dobbelte callbacks i at dobbelt-tælle en video.
3. Gør hvert output forudsigeligt og genanvendeligt
Adstacker bruger deterministiske S3-stier baseret på projekt, aktivtype, kategori og variation. Normaliserede medier og udtrækket lyd lever separat fra gengivne overlays og endelige kombinationer.
Denne organisering hjælper pipelinen på tre måder:
- Direkte opslag: Workers kan finde præcis det input eller output, der er knyttet til et projekt og en variation.
- Effektiv genbrug: Genanvendelige overlays gemmes én gang og kan understøtte mere end én endelig kombination.
- Idempotente genforsøg: Et genforsøg skriver til den samme forventede nøgle, hvilket undgår en voksende spor af duplikat-eksport.
Endelige videooptegnelser beholder S3-nøglerne og URL'erne for output, thumbnail og – når relevant – MOV-varianten. Applikationen kan derefter levere det format, der er klar.
4. Lever sikker adgang og ryd op i uafsluttet arbejde
S3-bucket'en er privat. Adstacker udsteder tidsbegrænsede signerede download-URL'er, eventuelt med et download-filnavn, så aktiver ikke behøver offentlig eksponering.
Ikke enhver upload bliver et færdigt projekt. Planlagt oprydning identificerer forældede, ufuldstændige projekter og sletter deres resterende S3-kildeobjekter. Afviste uploads slettes umiddelbart efter valideringen mislykkes.
Disse livscyklusregler begrænser forladt lagerplads, samtidig med at projekthistorikken bevares.
Eksempel fra den virkelige verden: en afbrudt upload betyder ikke at starte forfra
Forestil dig, at en marketingmedarbejder uploader seks klip og derefter lukker browseren, efter fire har nået S3. Ved tilbagevenden genopretter Adstacker uploadsessionen og leverer nye presigned requests for uafsluttede klip. Den kontrollerer også, om en fil nåede S3, selvom dens fuldførelses-callback gik tabt.
Når alle seks filer er verificeret og valideret, går projektet videre til behandling. Kilder, forberedte medier, overlays, miniaturer og endelige variationer forbliver organiseret under kendte nøgler for hvert senere trin.
Lagerplads designet til kreativ hastighed
Amazon S3 lader Adstacker behandle videoaktiver som en styret livscyklus: upload direkte, verificer objektet, valider mediet, skab forudsigelige output, autoriser downloads, og ryd op i ufuldstændigt arbejde. Det lader den kreative pipeline fokusere på at omdanne klip til testbare variationer.
Upload dine aktiver til Adstacker, byg de kombinationer, du ønsker at teste, og lad platformen administrere lagerarbejdsgangen bag hver rendering.
Teknologistak: Amazon S3 · AWS SDK for JavaScript · Presigned S3 POSTs · NestJS · FFprobe · AWS ECS Fargate · MongoDB
Læs mere fra vores team
1. Export Service vs. Video Editor Pipeline

