說明
使用 chrome.syncFileSystem
API 儲存在 Google 雲端硬碟並同步處理資料。這個 API 「不」用於存取儲存在 Google 雲端硬碟中的任意使用者文件。為離線和快取用量提供應用程式專用的同步儲存空間,以便在不同的用戶端之間取得相同的資料。如要進一步瞭解如何使用這個 API,請參閱管理資料。
權限
syncFileSystem
類型
ConflictResolutionPolicy
列舉
"last_write_win"
"手動"
FileInfo
屬性
-
動作
SyncAction 選用
同步處理觸發
onFileStatusChanged
事件的動作。動作值可以是'added'
、'updated'
或'deleted'
。只有在狀態為'synced'
時才能使用。 -
方向
onFileStatusChanged
事件的同步處理方向。同步處理方向值可以是'local_to_remote'
或'remote_to_local'
。只有在狀態為'synced'
時才能使用。 -
fileEntry
項目
目標檔案的
fileEntry
。包含同步檔案的名稱和路徑資訊。刪除檔案後,系統仍會保留fileEntry
的資訊,但檔案將不存在。 -
狀態
onFileStatusChanged
事件後產生的檔案狀態。狀態值可以是'synced'
、'pending'
或'conflicting'
。
FileStatus
列舉
「已同步處理」
未發生衝突,且沒有待處理的本機變更。
「待處理」
有一或多個待處理的本機變更尚未同步處理。
"conflicting"
檔案與遠端版本發生衝突,必須手動解決。
FileStatusInfo
屬性
-
錯誤
string optional
只有在擷取指定檔案的 FileStatus 時發生問題,系統才會傳回選用錯誤。
-
fileEntry
項目
其中一個原本提供給 getFileStatuses 的項目之一。
-
狀態
狀態值可以是
'synced'
、'pending'
或'conflicting'
。
ServiceInfo
屬性
-
說明
字串
ServiceStatus
列舉
"initializing"
正在初始化同步處理服務,例如從資料庫還原資料、檢查連線能力及驗證服務等。
"running"
同步處理服務已開始執行。
"authentication_required"
由於遠端服務必須經過使用者驗證才能繼續,因此同步處理服務不會同步處理檔案。
"temporary_unavailable"
同步處理服務不會同步處理檔案,因為遠端服務因某些可復原的錯誤 (例如:遠端網路處於離線狀態、遠端服務服務中斷或無法連線等。如要瞭解詳情,請在 OnServiceInfoUpdated 中透過 description
參數提供詳細資料 (其中可能包含服務專屬詳細資料)。
"disabled"
同步處理服務已停用,因此內容一律不會同步處理。(例如使用者在遠端服務中沒有使用帳戶,或同步處理服務發生無法復原的錯誤時,就可能發生這種情況)。
StorageInfo
屬性
-
quotaBytes
數字
-
usageBytes
數字
SyncAction
列舉
"已新增"
"已更新"
「已刪除」
SyncDirection
列舉
"local_to_remote"
"remote_to_local"
方法
getConflictResolutionPolicy()
chrome.syncFileSystem.getConflictResolutionPolicy(
callback?: function,
)
取得目前的衝突解決政策。
參數
-
回呼
函式 選用
callback
參數如下所示:(policy: ConflictResolutionPolicy) => void
傳回
-
Promise<ConflictResolutionPolicy>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
getFileStatus()
chrome.syncFileSystem.getFileStatus(
fileEntry: Entry,
callback?: function,
)
傳回指定 fileEntry
的 FileStatus
。狀態值可以是 'synced'
、'pending'
或 'conflicting'
。請注意,只有在服務的衝突解決政策設為 'manual'
時,才會發生 'conflicting'
狀態。
參數
-
fileEntry
項目
-
回呼
函式 選用
callback
參數如下所示:(status: FileStatus) => void
-
狀態
-
傳回
-
Promise<FileStatus>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
getFileStatuses()
chrome.syncFileSystem.getFileStatuses(
fileEntries: object[],
callback?: function,
)
傳回指定 fileEntry
陣列的每個 FileStatus
。通常會使用 dirReader.readEntries() 的結果呼叫。
參數
-
fileEntries
object[]
-
回呼
函式 選用
callback
參數如下所示:(status: FileStatusInfo[]) => void
-
狀態
-
傳回
-
Promise<FileStatusInfo[]>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
getServiceStatus()
chrome.syncFileSystem.getServiceStatus(
callback?: function,
)
傳回目前的同步處理後端狀態。
參數
-
回呼
函式 選用
callback
參數如下所示:(status: ServiceStatus) => void
傳回
-
Promise<ServiceStatus>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
getUsageAndQuota()
chrome.syncFileSystem.getUsageAndQuota(
fileSystem: DOMFileSystem,
callback?: function,
)
傳回應用程式 'syncable'
檔案儲存空間目前的用量和配額 (以位元組為單位)。
參數
-
fileSystem
DOMFileSystem
-
回呼
函式 選用
callback
參數如下所示:(info: StorageInfo) => void
-
資訊
-
傳回
-
Promise<StorageInfo>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
requestFileSystem()
chrome.syncFileSystem.requestFileSystem(
callback?: function,
)
傳回 Google 雲端硬碟支援的可同步檔案系統。傳回的 DOMFileSystem
執行個體可和臨時檔案系統相同 (請參閱 http://dev.w3.org/2009/dap/file-system/file-dir-sys.html)。
若從同一個應用程式多次呼叫此方法,系統會將相同的控制代碼傳回至相同的檔案系統。
請注意,這項呼叫可能會失敗。例如使用者未登入 Chrome,或沒有網路運作時。為處理這些錯誤,請務必檢查回呼中的 chrome.runtime.lastError。
參數
-
回呼
函式 選用
callback
參數如下所示:(fileSystem: DOMFileSystem) => void
-
fileSystem
DOMFileSystem
-
傳回
-
Promise<DOMFileSystem>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
setConflictResolutionPolicy()
chrome.syncFileSystem.setConflictResolutionPolicy(
policy: ConflictResolutionPolicy,
callback?: function,
)
設定應用程式的 'syncable'
檔案儲存空間預設衝突解決政策。預設值為 'last_write_win'
。如果將現有檔案的衝突解決政策設為 'last_write_win'
,系統會在下次更新檔案時自動解決衝突。您可以選擇提供 callback
,瞭解要求是否成功。
參數
-
回呼
函式 選用
callback
參數如下所示:() => void
傳回
-
承諾<void>
Chrome 117 以上版本Promise 僅適用於 Manifest V3 及以上版本,其他平台需要使用回呼。
活動
onFileStatusChanged
chrome.syncFileSystem.onFileStatusChanged.addListener(
callback: function,
)
背景同步處理服務更新檔案時觸發。
onServiceStatusChanged
chrome.syncFileSystem.onServiceStatusChanged.addListener(
callback: function,
)
當同步後端發生錯誤或其他狀態變更時 (例如同步處理因網路或驗證錯誤而暫時停用時),就會觸發這個事件。
參數
-
回呼
函式
callback
參數如下所示:(detail: ServiceInfo) => void
-
詳細資料
-