קריאייטיב וידאו הוא תהליך עבודה עתיר נתונים. פרויקט אחד של Adstacker יכול לכלול קליפים מקור, תמונות ממוזערות, סרטונים מנורמלים, אודיו מחולץ, שכבות-על הניתנות לשימוש חוזר, וגרסאות גמורות. אנחנו צריכים העלאות שלא מעמיסות על שרת היישומים, אימות אמין, מיקומי פלט צפויים, וניקוי לעבודה נטושה.
Amazon S3 היא שכבת הנכסים העמידה שמאחורי תהליך עבודה זה. Adstacker משתמשת בו כדי להעביר קבצים גדולים ישירות מיוצרים לאחסון, לארגן כל שלב בפרויקט, ולהפוך סרטונים גמורים לזמינים להורדה.
האתגר: נכסי וידאו מתרבים במהירות
בדיקות קריאייטיב מאפשרות לקבוצה קטנה של קליפים לייצר וריאציות רבות — ויוצרות בעיית ניהול נכסים. פרויקט יכול להתחיל עם קטעי 'הוק', 'באדי' ו-'קריאה לפעולה' (CTA), ואז לייצר עותקים מנורמלים, אודיו, שכבות-על עם כתוביות, תמונות ממוזערות, ופלט MP4 או MOV סופי.
העברת כל בייט דרך ה-API תאט העלאות ותצרוך רוחב פס של השרת. שמות קבצים חופשיים יהפכו ניסיונות חוזרים לקשים וישאירו נכסים יתומים כאשר יוצר סוגר לשונית באמצע ההעלאה.
אחסון חייב להיות חלק מכוון מצינור הייצור.
הגישה שלנו: S3 לאורך כל מחזור חיי הנכסים
S3 מעורב החל מיצירת פרויקט ועד להורדה הסופית. הקצה האחורי (backend) מטפל באישור, מניפסטים, אימות ומצב עבודה; S3 מטפל באובייקטים הגדולים.
ארכיטקטורה

פיצול זה מעניק לקבצי מדיה נתיב ישיר ועמיד לאחסון.
1. העלו סרטונים גדולים ישירות מהדפדפן
כאשר יוצר מתחיל פרויקט, Adstacker יוצרת מניפסט וידאו מקור ומחזירה presigned S3 POST עבור כל קובץ. הדפדפן שולח את הקובץ ישירות ל-S3 במקום להעביר אותו דרך ה-backend.
S3 אוכף את מגבלות ההעלאה החתומות: סוג תוכן מקובע וטווח גדלים מותר. אלה עוצרים העלאות ריקות או גדולות מדי לפני שהן נוחתות, בעוד שהבקשה קצרת-החיים מגבילה את מה שהדפדפן יכול להעלות.
אם הפעלה מופרעת, Adstacker מנפיקה מחדש כתובות URL טריות לסרטונים בהמתנה. היא גם בודקת את S3 במהלך חידוש, כך שאובייקט שפספס את קריאת החזרה (callback) להשלמה עדיין יכול להיות מותאם ומאומת.
2. אמת את מה שהגיע לפני עיבודו
העלאה שהושלמה בדפדפן אינה מספיקה כדי להתחיל ברינדור. ה-backend משתמש ב-S3 HEAD כדי לאשר את האובייקט, לקרוא את גודלו ו-ETag שלו, ולשמור את ה-ETag הזה יחד עם הווידאו המאומת.
לאחר מכן, Adstacker מורידה את האובייקט באופן זמני לאימות FFprobe. אנחנו מאשרים שהוא קריא ושהמשך ורזולוציה אפקטיבית עומדים בדרישות הפרויקט. קבצים לא תקינים מקבלים סיבת דחייה שימושית ונמחקים; כשלים זמניים בקריאה משאירים את האובייקט במקומו לניסיון חוזר.
כל סרטון עובר מחזור חיים ברור: ממתין (pending), נטען (uploading), נטען (uploaded), מאומת (validating), אומת (validated), או נדחה (rejected). פרויקט מתקדם רק לאחר שכל נכס צפוי מאומת, ועדכונים אטומיים מונעים קריאות חזרה כפולות מחישוב כפול של סרטון.
3. הפכו כל פלט לצפוי וניתן לשימוש חוזר
Adstacker משתמשת בנתיבי S3 דטרמיניסטיים המבוססים על הפרויקט, סוג הנכס, הקטגוריה והווריאציה. מדיה מנורמלת ואודיו מחולץ חיים בנפרד משכבות-על מעובדות ושילובים סופיים.
ארגון זה עוזר לצינור העבודה בשלוש דרכים:
- חיפוש ישיר: עובדים יכולים למצוא בדיוק את הקלט או הפלט המשויכים לפרויקט ולווריאציה.
- שימוש חוזר יעיל: שכבות-על הניתנות לשימוש חוזר מאוחסנות פעם אחת ויכולות לתמוך ביותר משילוב סופי אחד.
- ניסיונות חוזרים אידמפוטנטיים: ניסיון חוזר כותב לאותו מפתח צפוי, ובכך נמנע שביל הולך וגדל של ייצוא כפול.
רשומות הווידאו הסופיות שומרות את מפתחות S3 וכתובות ה-URL עבור הפלט, התמונה הממוזערת, וכאשר רלוונטי – גרסת MOV. לאחר מכן היישום יכול לספק את הפורמט שמוכן.
4. ספקו גישה בבטחה ונקו עבודה לא גמורה
באקט ה-S3 הוא פרטי. Adstacker מנפיקה כתובות URL חתומות להורדה עם מגבלת זמן, אופציונלית עם שם קובץ להורדה, כך שנכסים אינם זקוקים לחשיפה ציבורית.
לא כל העלאה הופכת לפרויקט גמור. ניקוי מתוזמן מזהה פרויקטים לא גמורים מיושנים ומוחק את אובייקטי המקור הנותרים שלהם ב-S3. העלאות שנדחו נמחקות מיד לאחר שכשל האימות.
כללי מחזור חיים אלו מגבילים אחסון נטוש תוך שמירה על היסטוריית הפרויקט.
דוגמה מהעולם האמיתי: העלאה שהופרעה לא אומרת להתחיל מחדש
דמיינו משווק המעלה שישה קליפים, ואז סוגר את הדפדפן לאחר שארבעה הגיעו ל-S3. בשיבה, Adstacker משחזרת את סשן ההעלאה ומספקת בקשות presigned חדשות עבור קליפים לא גמורים. היא גם בודקת אם קובץ הגיע ל-S3 גם אם קריאת החזרה להשלמתו אבדה.
ברגע שכל ששת הקבצים מאומתים, הפרויקט עובר לעיבוד. מקורות, מדיה מוכנה, שכבות-על, תמונות ממוזערות וגרסאות סופיות נשארים מאורגנים תחת מפתחות ידועים עבור כל שלב מאוחר יותר.
אחסון המיועד למהירות קריאייטיבית
Amazon S3 מאפשר ל-Adstacker להתייחס לנכסי וידאו כמחזור חיים מנוהל: העלאה ישירה, אימות האובייקט, אימות המדיה, יצירת פלטים צפויים, אישור הורדות וניקוי עבודה לא גמורה. זה מאפשר לצינור העבודה הקריאייטיבי להתמקד בהפיכת קליפים לגרסאות ניתנות לבדיקה.
העלו את הנכסים שלכם ל-Adstacker, בנו את השילובים שאתם רוצים לבדוק, ותנו לפלטפורמה לנהל את תהליך האחסון מאחורי כל רינדור.
מחסנית טכנולוגית: Amazon S3 · AWS SDK for JavaScript · Presigned S3 POSTs · NestJS · FFprobe · AWS ECS Fargate · MongoDB
קראו עוד מהצוות שלנו
1. Export Service vs. Video Editor Pipeline

