אחסון אובייקטים S3-Compatible: מבנה, עלויות והעלאת קבצים גדולים
מאת צוות מדיה דיל · 27.06.2026 · טכנולוגיה · 4 דק׳
הבדל ממערכת קבצים היררכית, Presigned URLs, Multipart Upload, מודל תמחור לפי אחסון-בקשות-egress, ושכבות אחסון קרות לארכיון.
שרת אפליקציה שכותב קבצי משתמשים לדיסק המקומי שלו נתקל בקיר ברגע שצריך לשכפל את השרת: הקבצים לא זמינים לאינסטנס השני, גיבוי דורש להעתיק את כל הדיסק, וגודל האחסון מוגבל לנפח הפיזי של המכונה. אחסון אובייקטים בסגנון S3 פותר את זה בכך שהוא לא מערכת קבצים היררכית בכלל אלא מרחב שטוח של מפתחות וערכים — כל "קובץ" הוא אובייקט עם מזהה ייחודי, ונגיש מכל שירות בענן דרך HTTP, בלי תלות במכונה ספציפית. המודל הפשוט הזה — מפתח שמצביע על ערך בינארי — הוא בדיוק מה שמאפשר לו לסקייל בקלות כזו ולעמוד מאחורי כמעט כל שירות ענן שמתמודד עם קבצים בהיקף גדול.
למה זה לא מערכת קבצים
במערכת קבצים רגילה יש עץ תיקיות אמיתי, מטא-דאטה עשיר כמו הרשאות POSIX, ותמיכה בעדכון חלקי של קובץ במקום. אחסון אובייקטים מוותר על כל זה בכוונה: אין תיקיות אמיתיות (רק prefix במפתח שמדמה אותן), אובייקט הוא immutable — כדי "לעדכן" קובץ מעלים אותו מחדש עם אותו מפתח, לא עורכים אותו במקום. הוויתור הזה הוא בדיוק מה שמאפשר סקיילביליות כמעט אינסופית ועמידות גבוהה, כי אין נעילות ואין state מבוזר לתאם בין צמתים. כל אובייקט נשמר כברירת מחדל בכמה עותקים על דיסקים ואפילו מרכזי נתונים שונים, כך שהעמידות מגיעה מובנית ולא דורשת מנגנון גיבוי נפרד שהמפתח צריך לתכנן בעצמו.
Presigned URLs: העלאה והורדה בלי לעבור דרך השרת
presigned URL הוא כתובת חתומה זמנית שנותנת הרשאה ספציפית (למשל PUT לאובייקט מסוים) לזמן מוגבל, בלי לחשוף את מפתחות ה-API. במקום שהשרת יעביר קבצים גדולים דרך עצמו — עומס מיותר על ה-bandwidth ועל הזיכרון שלו — הוא רק מייצר presigned URL והלקוח מעלה או מוריד ישירות מ/אל האחסון. זה גם מפחית latency וגם משחרר את שרת האפליקציה מלהיות צוואר בקבוק לכל העברת קובץ. אותה טכניקה משמשת גם להורדה — במקום להזרים קובץ דרך השרת, מייצרים presigned GET שמאפשר ללקוח להוריד ישירות מהאחסון, כשההרשאה עצמה כבר נבדקת בזמן יצירת הכתובת ולא בכל בקשה בנפרד.
Multipart Upload לקבצים גדולים
העלאת קובץ של כמה ג'יגה-בייט בבקשת HTTP אחת שברירית — כל תקלת רשת אמצע הדרך מחייבת להתחיל מאפס. Multipart upload מפצל את הקובץ לחלקים (part אחר part, בדרך כלל 5MB ומעלה כל אחד), מעלה אותם במקביל, ומאשר את ההרכבה רק אחרי שכל החלקים נשלחו בהצלחה — חלק בודד שנכשל מועלה מחדש בלי לגעת בשאר. זה גם מאפשר להעלות קבצים בגודל שחורג לגמרי מבקשת HTTP בודדת, ולנצל bandwidth טוב יותר דרך העלאה מקבילה.
מודל העלויות
אחסון אובייקטים מתומחר לפי שלושה צירים נפרדים: נפח מאוחסן לפי GB לחודש, בקשות (PUT/GET/LIST כל אחת בעלות שונה), ותעבורת יציאה (egress) שהיא לרוב הרכיב היקר ביותר בפועל. שכבות אחסון קרות (Infrequent Access, Glacier) מוזילות משמעותית את מחיר האחסון תמורת latency גבוה יותר וקנס על שליפה מוקדמת, ומתאימות לארכיון וגיבויים שלא נדרשת אליהם גישה מיידית.
שימושים מעבר לקבצי משתמשים
מעבר לתמונות ומסמכים, אחסון אובייקטים הוא גם היעד הטבעי ל-data lake של קבצי Parquet לניתוח אנליטי, ל-artifacts של build ו-CI/CD, וליעד גיבוי בארכיטקטורות Disaster Recovery שדורשות עותק מחוץ לאזור הראשי. תאימות S3 API הפכה לתקן דה-פקטו, כך שאפשר להחליף ספק (AWS, MinIO עצמאי, Cloudflare R2) כמעט בלי לשנות קוד.
בונים ארכיטקטורת אחסון קבצים שצריכה לסקייל בלי כאבי ראש? נשמח לעזור לכם בוואטסאפ.
תגיות: Object Storage · S3 · Presigned URL · Multipart Upload · אחסון בענן · עלויות אחסון