שיטות מומלצות לייבוא בכמות גדולה של קבצים שהוצפנו בצד הלקוח

במדריך הזה מוסברות שיטות מומלצות ליצירת כלי בהתאמה אישית לייבוא בכמות גדולה של קבצים מוצפנים מצד הלקוח (CSE) באמצעות Drive API.

כדאי להשתמש ב-'Drive לשולחן העבודה' להעברות בשירות עצמי

משתמש יכול לייבא קבצים מהמחשב המקומי שלו באמצעות לקוח Drive לשולחן העבודה. היא תומכת באופן מלא בהצפנה מצד הלקוח ומאפשרת למשתמשים להצפין ולהעלות קבצים בעצמם. בניית כלי מותאם אישית כמו שמתואר במדריך הזה נדרשת רק לייבוא בכמות גדולה, ללא השגחה או עם משתמשים מרובים.

לפני שמתחילים

אתם צריכים להבין איך לנהל קובץ אחד שהוצפן מצד הלקוח. במאמר ניהול קבצים נפרדים עם CSE מוסבר על השלבים הבסיסיים להצפנה, להעלאה/הורדה ולפענוח, כולל יצירת טוקנים ואינטראקציה עם שירות רשימה של בקרת גישה של מפתחות (KACLS).

אימות באמצעות חשבון שירות

כשמבצעים אינטראקציה עם Drive API, מומלץ להשתמש בחשבון שירות עם הענקת גישה ברמת הדומיין. כך האפליקציה יכולה להתחזות למשתמשים, ולכן אפשר לתכנת אותה כך שתעבור על כל המשתמשים ותעלה קבצים ישירות בשמם.

יצירה מחדש של מבנה הספרייה

כדאי לתכנן את כלי הייבוא כך שיעבור באופן רקורסיבי על קובצי המקור והתיקיות כדי לשקף את מבנה התיקיות הקיים ב-Drive. התהליך הכללי הוא כזה:

  1. לכל ספריית מקור, יוצרים תיקייה תואמת ב-Drive.
  2. הצפנה והעלאה של הקבצים בספרייה לתיקייה שנוצרה ב-Drive.
  3. חוזרים על התהליך עבור ספריות משנה.

העלאת קבצים למקום הנכון

תמיד מעלים קבצים לתיקיית 'האחסון שלי' של המשתמש הנכון או לאחסון שיתופי נגיש. כדי למצוא מזהה של תיקייה או של אחסון שיתופי, אפשר למצוא אותו באופן סטטי מכתובת ה-URL של Drive באינטרנט או באופן דינמי באמצעות השיטות drives.list ו-files.list.

מניעת כפילויות

ב-Drive אפשר לשמור כמה קבצים באותה תיקייה עם אותו שם קובץ בדיוק. צריך ליצור מזהים לקבצים לפני ההעלאה. אפשר להשתמש ב-method‏ files.generateIds של Drive API כדי לעשות זאת.

אם מאחסנים את המזהים שנוצרו מראש, הכלי לייבוא יכול לנסות להעלות כל קובץ למזהה הספציפי שלו. אם כבר קיים קובץ עם המזהה הזה, הכלי יכול לדלג עליו בבטחה. שימוש במזהים שנוצרו מראש יעזור לכלי שלכם להתאושש מקריסה.

בקשת אסימון CSE לפני כל העלאה

קוראים ל-generateCseToken לכל קובץ מיד לפני עטיפת המפתח והעלאת הקובץ. הגישה הזו מבטיחה שהטוקן ישקף בצורה מדויקת את המצב הנוכחי של המטא-נתונים המשויכים, שיכולים להשתנות.

שימוש בהעלאות שניתן להמשיך לקבצים גדולים

כדי להעביר קבצים גדולים, משתמשים ב-Drive API resumable uploads. ההעלאות האלה מאפשרות לכלי הייבוא לנסות שוב להעלות חלקים שנכשלו במהלך שיבושים ברשת, במקום להפעיל מחדש את ההעלאה של כל הקובץ.

שחזור הרשאות השיתוף

אם כלי הייבוא בכמות גדולה צריך לשמור על הרשאות השיתוף, צריך קודם להצפין את הקובץ ולהעלות אותו, ואז להפעיל את השיטה permissions.create. הרשאות השיתוף לא מוחלות במהלך העלאת הקובץ עצמה.

טיפול בתוקף הטוקן

בפעולות שפועלות לאורך זמן, יכול להיות שהסקריפט ייתקל בשגיאות אימות בגלל תפוגה של טוקן. הטמיעו לוגיקה כדי לרענן אוטומטית את אסימוני הגישה ולנסות שוב את ההעלאות. לפרטים נוספים, אפשר לעיין בדוגמה לקוד פתוח שמראה איך להצפין ולהעלות קובץ יחיד.

אימות יסודי של הקבצים המיובאים

אחרי ייבוא בכמות גדולה, חשוב לבצע אימות יסודי. ‫Google לא יכולה לפענח ולאמת את הקבצים שלכם בצד השרת. בקטע אימות קבצים מיובאים מפורטות כמה שיטות לבדיקה מדגמית של קבצים נפרדים.

שיטה נוספת לאימות בקנה מידה גדול, שימושית במיוחד אחרי ייבוא בכמות גדולה, היא שימוש בכלי הרשמי לפענוח. קודם צריך להוריד את התוכן המוצפן מ-Drive באמצעות Google Takeout. לאחר מכן, מנסים לפענח את הקבצים באמצעות כלי הפענוח. התהליך הזה עוזר לזהות קבצים שלא ניתן לפענח, ומצביע על בעיות אפשריות בהצפנה של כלי הייבוא או בלוגיקה של עטיפת המפתח.

הסבר על מגבלות ומכסות

קבצים שמוצפנים מצד הלקוח כפופים למגבלות ולמכסות הרגילות של Drive. חשוב להכיר את המגבלות על אחסון שיתופי, את המגבלות הכלליות על קבצים ותיקיות ואת ההוראות לניהול נפח האחסון. בנוסף, כלי הייבוא צריך לטפל במגבלות קצב מהשירות של רשימת המפתחות של בקרת הגישה (KACLS) ומספק הזהויות (IdP).