chrome.syncFileSystem

תיאור

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

הרשאות

syncFileSystem

סוגים

ConflictResolutionPolicy

טיפוסים בני מנייה (enum)

"last_write_win"

"manual"

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)

"synced"
אין התנגשות ואין שינויים מקומיים בהמתנה.

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

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

FileStatusInfo

מאפיינים

  • error

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

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

  • fileEntry

    הערך

    אחד מהרשומות שניתנו במקור ל-getFileStatuses.

  • status

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

ServiceInfo

מאפיינים

ServiceStatus

טיפוסים בני מנייה (enum)

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

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

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

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

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

StorageInfo

מאפיינים

  • quotaBytes

    number

  • usageBytes

    number

SyncAction

טיפוסים בני מנייה (enum)

"נוסף"

"updated"

"deleted"

SyncDirection

טיפוסים בני מנייה (enum)

"local_to_remote"

"remote_to_local"

Methods

getConflictResolutionPolicy()

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

הצגת המדיניות הנוכחית לפתרון התנגשויות.

פרמטרים

החזרות

  • ‫Chrome מגרסה 117 ואילך

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

getFileStatus()

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

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

פרמטרים

  • fileEntry

    הערך

  • callback

    function optional

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

    (status: FileStatus) => void

החזרות

  • Promise<FileStatus>

    ‫Chrome מגרסה 117 ואילך

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

getFileStatuses()

Promise
chrome.syncFileSystem.getFileStatuses(
  fileEntries: object[],
  callback?: function,
)
: Promise<FileStatusInfo[]>

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

פרמטרים

  • fileEntries

    object[]‎

  • callback

    function optional

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

    (status: FileStatusInfo[]) => void

החזרות

  • Promise<FileStatusInfo[]>

    ‫Chrome מגרסה 117 ואילך

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

getServiceStatus()

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

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

פרמטרים

החזרות

  • Promise<ServiceStatus>

    ‫Chrome מגרסה 117 ואילך

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

getUsageAndQuota()

Promise
chrome.syncFileSystem.getUsageAndQuota(
  fileSystem: DOMFileSystem,
  callback?: function,
)
: Promise<StorageInfo>

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

פרמטרים

  • fileSystem

    DOMFileSystem

  • callback

    function optional

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

    (info: StorageInfo) => void

החזרות

  • Promise<StorageInfo>

    ‫Chrome מגרסה 117 ואילך

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

requestFileSystem()

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

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

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

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

פרמטרים

  • callback

    function optional

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

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

החזרות

  • Promise<DOMFileSystem>

    ‫Chrome מגרסה 117 ואילך

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

setConflictResolutionPolicy()

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

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

פרמטרים

החזרות

  • Promise<void>

    ‫Chrome מגרסה 117 ואילך

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

אירועים

onFileStatusChanged

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

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

פרמטרים

  • callback

    פונקציה

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

    (detail: FileInfo) => void

onServiceStatusChanged

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

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

פרמטרים

  • callback

    פונקציה

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

    (detail: ServiceInfo) => void