תיאור
אפשר להשתמש ב-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()
chrome.syncFileSystem.getConflictResolutionPolicy(
callback?: function,
): Promise<ConflictResolutionPolicy>
הפקודה מחזירה את מדיניות פתרון הסכסוכים הנוכחית.
פרמטרים
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(policy: ConflictResolutionPolicy) => void
-
policy
-
החזרות
-
Promise<ConflictResolutionPolicy>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
getFileStatus()
chrome.syncFileSystem.getFileStatus(
fileEntry: Entry,
callback?: function,
): Promise<FileStatus>
מחזירה את FileStatus
עבור fileEntry
נתון. ערך הסטטוס יכול להיות 'synced'
, 'pending'
או 'conflicting'
. חשוב לדעת שהמצב 'conflicting'
מתרחש רק כשהמדיניות של השירות לפתרון קונפליקטים מוגדרת לערך 'manual'
.
פרמטרים
-
fileEntry
הערך
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(status: FileStatus) => void
-
status
-
החזרות
-
Promise<FileStatus>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
getFileStatuses()
chrome.syncFileSystem.getFileStatuses(
fileEntries: object[],
callback?: function,
): Promise<FileStatusInfo[]>
הפונקציה מחזירה כל FileStatus
עבור מערך fileEntry
שצוין. בדרך כלל קוראים לפונקציה הזו עם התוצאה של dirReader.readEntries().
פרמטרים
-
fileEntries
object[]
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(status: FileStatusInfo[]) => void
-
status
-
החזרות
-
Promise<FileStatusInfo[]>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
getServiceStatus()
chrome.syncFileSystem.getServiceStatus(
callback?: function,
): Promise<ServiceStatus>
מחזירה את הסטטוס הנוכחי של העורף האחורי של הסנכרון.
פרמטרים
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(status: ServiceStatus) => void
-
status
-
החזרות
-
Promise<ServiceStatus>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
getUsageAndQuota()
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()
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()
chrome.syncFileSystem.setConflictResolutionPolicy(
policy: ConflictResolutionPolicy,
callback?: function,
): Promise<void>
ההגדרה הזו קובעת את מדיניות ברירת המחדל לפתרון קונפליקטים באחסון הקבצים של אפליקציית 'syncable'
. ברירת המחדל היא 'last_write_win'
. כשהמדיניות לפתרון קונפליקטים מוגדרת ל'last_write_win'
, קונפליקטים בקבצים קיימים נפתרים באופן אוטומטי בפעם הבאה שהקובץ מתעדכן. אפשר להעביר את הערך callback
כדי לדעת אם הבקשה הצליחה או לא.
פרמטרים
-
policy
-
callback
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
Promise<void>
Chrome 117 ואילךההבטחות נתמכות רק ב-Manifest V3 ובגרסאות מאוחרות יותר. בפלטפורמות אחרות צריך להשתמש בפונקציות Callback.
אירועים
onFileStatusChanged
chrome.syncFileSystem.onFileStatusChanged.addListener(
callback: function,
)
האירוע מופעל כשקובץ מתעדכן על ידי שירות הסנכרון ברקע.
onServiceStatusChanged
chrome.syncFileSystem.onServiceStatusChanged.addListener(
callback: function,
)
האירוע מופעל כשמתרחשת שגיאה או שינוי אחר בסטטוס של העורף של הסנכרון (לדוגמה, כשהסנכרון מושבת באופן זמני בגלל שגיאה ברשת או באימות).
פרמטרים
-
callback
פונקציה
הפרמטר
callback
נראה כך:(detail: ServiceInfo) => void
-
פרט
-