chrome.syncFileSystem

תיאור

אפשר להשתמש ב-chrome.syncFileSystem API כדי לשמור ולסנכרן נתונים ב-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

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

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

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

FileStatusInfo

מאפיינים

  • error

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

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

  • fileEntry

    הערך

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

  • status

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

ServiceInfo

מאפיינים

ServiceStatus

Enum

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

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

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

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

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

StorageInfo

מאפיינים

  • quotaBytes

    number

  • usageBytes

    number

SyncAction

Enum

‎"added"

"updated"

"deleted"

SyncDirection

Enum

"local_to_remote"

"remote_to_local"

Methods

getConflictResolutionPolicy()

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

הפקודה מחזירה את מדיניות פתרון הסכסוכים הנוכחית.

פרמטרים

החזרות

  • Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

getFileStatus()

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

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

פרמטרים

  • fileEntry

    הערך

  • callback

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

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

    (status: FileStatus) => void

החזרות

  • Promise<FileStatus>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

getFileStatuses()

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

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

פרמטרים

  • fileEntries

    object[]

  • callback

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

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

    (status: FileStatusInfo[]) => void

החזרות

  • Promise<FileStatusInfo[]>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

getServiceStatus()

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

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

פרמטרים

  • callback

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

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

    (status: ServiceStatus) => void

החזרות

  • Promise<ServiceStatus>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

getUsageAndQuota()

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

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

פרמטרים

  • fileSystem

    DOMFileSystem

  • callback

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

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

    (info: StorageInfo) => void

החזרות

  • Promise<StorageInfo>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

requestFileSystem()

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

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

אם קוראים לפונקציה הזו כמה פעמים מאותה אפליקציה, היא תחזיר את אותו ה-handle לאותו קובץ מערכת.

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

פרמטרים

  • callback

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

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

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

החזרות

  • Promise<DOMFileSystem>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.

setConflictResolutionPolicy()

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

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

פרמטרים

  • callback

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

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

    () => void

החזרות

  • Promise<void>

    Chrome 117 ואילך

    ההבטחות נתמכות רק ב-Manifest 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