La création vidéo est un flux de travail gourmand en données. Un projet Adstacker peut inclure des clips source, des miniatures, des vidéos normalisées, de l'audio extrait, des superpositions réutilisables et des variations finales. Nous avons besoin de téléchargements qui ne surchargent pas le serveur d'application, d'une validation fiable, d'emplacements de sortie prévisibles et d'un nettoyage pour les travaux abandonnés.
Amazon S3 est la couche d'actifs durable qui sous-tend ce flux de travail. Adstacker l'utilise pour déplacer des fichiers volumineux directement des créateurs vers le stockage, organiser chaque étape d'un projet et rendre les vidéos terminées disponibles au téléchargement.
Le défi : les actifs vidéo se multiplient rapidement
Les tests créatifs permettent à un petit ensemble de clips de produire de nombreuses variations—et créent un problème de gestion des actifs. Un projet peut commencer avec des séquences d'accroche (hook), de corps (body) et d'appel à l'action (CTA), puis produire des copies normalisées, de l'audio, des superpositions sous-titrées, des miniatures et des sorties MP4 ou MOV finales.
Déplacer chaque octet via l'API ralentirait les téléchargements et consommerait de la bande passante serveur. Des noms de fichiers peu rigoureux rendraient les réessais difficiles et laisseraient des actifs orphelins si un créateur ferme un onglet en plein téléchargement.
Le stockage doit ĂŞtre une partie intentionnelle du pipeline de production.
Notre approche : S3 tout au long du cycle de vie des actifs
S3 est impliqué de la création du projet au téléchargement final. Le backend gère l'autorisation, les manifestes, la validation et l'état des tâches ; S3 gère les objets volumineux.
Architecture

Cette séparation offre aux fichiers multimédias un chemin direct et durable vers le stockage.
1. Télécharger des vidéos volumineuses directement depuis le navigateur
Lorsqu'un créateur démarre un projet, Adstacker crée un manifeste vidéo source et renvoie une requête S3 POST présignée pour chaque fichier. Le navigateur envoie le fichier directement à S3 au lieu de le faire transiter par le backend.
S3 applique les contraintes de téléchargement signé : un type de contenu fixe et une plage de tailles autorisées. Celles-ci arrêtent les téléchargements vides ou surdimensionnés avant qu'ils n'arrivent, tandis que la requête de courte durée limite ce que le navigateur peut télécharger.
Si une session est interrompue, Adstacker réémet de nouvelles URL pour les vidéos en attente. Il vérifie également S3 lors de la reprise, de sorte qu'un objet qui a manqué le rappel de complétion peut toujours être réconcilié et validé.
2. Vérifier ce qui est arrivé avant de le traiter
Un téléchargement terminé dans le navigateur ne suffit pas pour commencer le rendu. Le backend utilise S3 HEAD pour confirmer l'objet, lire sa taille et son ETag, et enregistrer cet ETag avec la vidéo validée.
Ensuite, Adstacker télécharge temporairement l'objet pour la validation FFprobe. Nous confirmons qu'il est lisible et que la durée et la résolution effective répondent aux exigences du projet. Les fichiers non valides reçoivent une raison de rejet utile et sont supprimés ; les échecs de lecture transitoires laissent l'objet en place pour un nouvel essai.
Chaque vidéo passe par un cycle de vie clair : en attente, en cours de téléchargement, téléchargée, en cours de validation, validée ou rejetée. Un projet n'avance qu'après la validation de chaque actif attendu, et les mises à jour atomiques empêchent les rappels en double de compter une vidéo deux fois.
3. Rendre chaque sortie prévisible et réutilisable
Adstacker utilise des chemins S3 déterministes basés sur le projet, le type d'actif, la catégorie et la variation. Les médias normalisés et l'audio extrait vivent séparément des superpositions rendues et des combinaisons finales.
Cette organisation aide le pipeline de trois manières :
- Recherche directe : Les travailleurs peuvent trouver exactement l'entrée ou la sortie associée à un projet et à une variation.
- Réutilisation efficace : Les superpositions réutilisables sont stockées une seule fois et peuvent prendre en charge plus d'une combinaison finale.
- Nouvelles tentatives idempotentes : Une nouvelle tentative écrit sur la même clé attendue, évitant une trace croissante d'exportations en double.
Les enregistrements vidéo finaux conservent les clés S3 et les URL pour la sortie, la miniature et—le cas échéant—la variante MOV. L'application peut alors fournir le format qui est prêt.
4. Fournir un accès sécurisé et nettoyer le travail incomplet
Le bucket S3 est privé. Adstacker émet des URL de téléchargement signées à durée limitée, éventuellement avec un nom de fichier de téléchargement, de sorte que les actifs n'aient pas besoin d'une exposition publique.
Tous les téléchargements ne deviennent pas un projet terminé. Le nettoyage programmé identifie les projets incomplets obsolètes et supprime leurs objets source S3 restants. Les téléchargements rejetés sont supprimés immédiatement après l'échec de la validation.
Ces règles de cycle de vie limitent le stockage abandonné tout en préservant l'historique du projet.
Exemple concret : un téléchargement interrompu ne signifie pas tout recommencer
Imaginez qu'un spécialiste du marketing télécharge six clips, puis ferme le navigateur après que quatre d'entre eux aient atteint S3. Au retour, Adstacker restaure la session de téléchargement et fournit de nouvelles requêtes présignées pour les clips inachevés. Il vérifie également si un fichier a atteint S3 même si son rappel de complétion a été perdu.
Une fois les six fichiers vérifiés et validés, le projet passe au traitement. Les sources, les médias préparés, les superpositions, les miniatures et les variations finales restent organisés sous des clés connues pour chaque étape ultérieure.
Stockage conçu pour la vélocité créative
Amazon S3 permet à Adstacker de gérer les actifs vidéo comme un cycle de vie contrôlé : télécharger directement, vérifier l'objet, valider le média, créer des sorties prévisibles, autoriser les téléchargements et nettoyer le travail incomplet. Cela permet au pipeline créatif de se concentrer sur la transformation des clips en variations testables.
Téléchargez vos actifs sur Adstacker, créez les combinaisons que vous souhaitez tester et laissez la plateforme gérer le flux de travail de stockage derrière chaque rendu.
Pile technologique : Amazon S3 · AWS SDK for JavaScript · Presigned S3 POSTs · NestJS · FFprobe · AWS ECS Fargate · MongoDB
En savoir plus de notre équipe
1. Service d'exportation vs. Pipeline d'éditeur vidéo
2. Construire un éditeur vidéo normal
3. Optimiser le logo de la chaîne pour différentes résolutions vidéo

