chrome.syncFileSystem

תיאור

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

הרשאות

syncFileSystem

סוגים

ConflictResolutionPolicy

Enum

"last_write_win"

FileInfo

מאפיינים

  • פעולה

    SyncAction אופציונלי

    פעולת הסנכרון שבוצעה כדי להפעיל את האירוע onFileStatusChanged. ערך הפעולה יכול להיות 'added', 'updated' או 'deleted'. האפשרות הזו רלוונטית רק אם הסטטוס הוא 'synced'.

  • direction

    SyncDirection אופציונלי

    כיוון הסנכרון של האירוע onFileStatusChanged. הערך של כיוון הסנכרון יכול להיות 'local_to_remote' או 'remote_to_local'. האפשרות הזו רלוונטית רק אם הסטטוס הוא 'synced'.

  • fileEntry

    הערך

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

  • status

    סטטוס הקובץ שמתקבל אחרי האירוע onFileStatusChanged. ערך הסטטוס יכול להיות 'synced',‏ 'pending' או 'conflicting'.

FileStatus

Enum

'סונכרן'
אין לו התנגשויות ואין שינויים מקומיים בהמתנה.

"בהמתנה"
כולל שינוי מקומי אחד או יותר בהמתנה, שלא סונכרנו.

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

FileStatusInfo

מאפיינים

  • error

    מחרוזת אופציונלי

    שגיאה אופציונלית שמוחזרת רק אם הייתה בעיה באחזור FileStatus של הקובץ הנתון.

  • fileEntry

    הערך

    אחד הערכים שניתנו במקור כדי getFileStatuses.

  • status

    ערך הסטטוס יכול להיות 'synced',‏ 'pending' או 'conflicting'.

ServiceInfo

מאפיינים

ServiceStatus

Enum

"אתחול"
שירות הסנכרון מופעל (למשל, שחזור נתונים ממסד הנתונים, בדיקת קישוריות ואימות לשירות וכו').

"פועל"
שירות הסנכרון פועל.

"authentication_required"
שירות הסנכרון לא מסנכרן קבצים כי המשתמש צריך לאמת את השירות המרוחק כדי להמשיך.

"temporary_unavailable"
שירות הסנכרון לא מסנכרן קבצים כי השירות המרוחק לא זמין (באופן זמני) בגלל שגיאות שניתנות לתיקון, למשל: הרשת אופליין, השירות המרוחק מושבת או לא ניתן לגשת אליו וכו'. יש לציין פרטים נוספים באמצעות הפרמטר description ב-OnServiceInfoUpdated (שיכול להכיל פרטים ספציפיים לשירות).

"מושבת"
שירות הסנכרון מושבת והתוכן אף פעם לא יסונכרן. (למשל, מצב כזה יכול לקרות כשלמשתמש אין חשבון בשירות המרוחק או כשיש שגיאה שלא ניתן לשחזר בשירות הסנכרון.)

StorageInfo

מאפיינים

  • quotaBytes

    מספר

  • usageBytes

    מספר

SyncAction

Enum

"added"

SyncDirection

Enum

"local_to_remote"

שיטות

getConflictResolutionPolicy()

Promise
chrome.syncFileSystem.getConflictResolutionPolicy(
  callback?: function,
)

קבלת המדיניות הנוכחית לפתרון מחלוקות.

פרמטרים

החזרות

  • Chrome 117 ואילך

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

getFileStatus()

Promise
chrome.syncFileSystem.getFileStatus(
  fileEntry: Entry,
  callback?: function,
)

הפונקציה מחזירה את הערך FileStatus של fileEntry הנתון. ערך הסטטוס יכול להיות 'synced', 'pending' או 'conflicting'. חשוב לשים לב שמצב 'conflicting' מתרחש רק כשהמדיניות של השירות לפתרון מחלוקות מוגדרת ל-'manual'.

פרמטרים

  • fileEntry

    הערך

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (status: FileStatus) => void

החזרות

  • Promise<FileStatus>

    Chrome 117 ואילך

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getFileStatuses()

הבטחה
chrome.syncFileSystem.getFileStatuses(
  fileEntries: object[],
  callback?: function,
)

הפונקציה מחזירה כל FileStatus במערך fileEntry הנתון. בדרך כלל נקרא עם התוצאה מ-dirReader.readEntries().

פרמטרים

  • fileEntries

    object[]

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (status: FileStatusInfo[]) => void

החזרות

  • Promise<FileStatusInfo[]>

    Chrome 117 ואילך

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getServiceStatus()

Promise
chrome.syncFileSystem.getServiceStatus(
  callback?: function,
)

הפונקציה מחזירה את סטטוס הקצה העורפי הנוכחי של הסנכרון.

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (status: ServiceStatus) => void

החזרות

  • Promise&lt;ServiceStatus&gt;

    Chrome 117 ואילך

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

getUsageAndQuota()

הבטחה
chrome.syncFileSystem.getUsageAndQuota(
  fileSystem: DOMFileSystem,
  callback?: function,
)

הפונקציה מחזירה את הניצול הנוכחי ואת המכסה בייטים של האחסון של קובץ 'syncable' באפליקציה.

פרמטרים

  • fileSystem

    DOMFileSystem

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (info: StorageInfo) => void

החזרות

  • Promise<StorageInfo>

    גרסה 117 ואילך של Chrome

    יש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

requestFileSystem()

Promise
chrome.syncFileSystem.requestFileSystem(
  callback?: function,
)

מחזירה מערכת קבצים שניתנת לסנכרון ומגובה על ידי Google Drive. אפשר להפעיל את המכונה של DOMFileSystem שמוחזרת באותו אופן כמו במערכות הקבצים הזמניות וה-Persistant (מידע נוסף זמין בכתובת http://dev.w3.org/2009/dap/file-system/file-dir-sys.html).

קריאה ל-open כמה פעמים מאותה אפליקציה תחזיר את אותו מזהה לאותה מערכת קבצים.

חשוב לזכור שהשיחה הזו יכולה להיכשל. למשל, אם המשתמש לא מחובר ל-Chrome או אם לא מתבצעת פעולה ברשת. כדי לטפל בשגיאות האלה, חשוב לבדוק את chrome.runtime.lastError ב-callback.

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

החזרות

  • Promise<DOMFileSystem>

    Chrome 117 ואילך

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

setConflictResolutionPolicy()

Promise
chrome.syncFileSystem.setConflictResolutionPolicy(
  policy: ConflictResolutionPolicy,
  callback?: function,
)

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

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

    Chrome 117 ואילך

    הבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).

אירועים

onFileStatusChanged

chrome.syncFileSystem.onFileStatusChanged.addListener(
  callback: function,
)

האירוע מופעל כשקובץ מתעדכן על ידי שירות הסנכרון ברקע.

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה

    הפרמטר callback נראה כך:

    (detail: FileInfo) => void

onServiceStatusChanged

chrome.syncFileSystem.onServiceStatusChanged.addListener(
  callback: function,
)

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

פרמטרים

  • קריאה חוזרת (callback)

    פונקציה

    הפרמטר callback נראה כך:

    (detail: ServiceInfo) => void