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