chrome.syncFileSystem
- Description
Use the
chrome.syncFileSystem
API to save and synchronize data on Google Drive. This API is NOT for accessing arbitrary user docs stored in Google Drive. It provides app-specific syncable storage for offline and caching usage so that the same data can be available across different clients. Read Manage Data for more on using this API. - Permissions
syncFileSystem
Summary
- Types
- Methods
syncFileSystem.getConflictResolutionPolicy(callback: function)
syncFileSystem.getFileStatus(fileEntry: Entry, callback: function)
syncFileSystem.getFileStatuses(fileEntries: object[], callback: function)
syncFileSystem.getServiceStatus(callback: function)
syncFileSystem.getUsageAndQuota(fileSystem: DOMFileSystem, callback: function)
syncFileSystem.requestFileSystem(callback: function)
syncFileSystem.setConflictResolutionPolicy(policy: ConflictResolutionPolicy, callback: function)
- Events
Types
FileInfo
Properties
- actionSyncAction optional
Sync action taken to fire
onFileStatusChanged
event. The action value can be'added'
,'updated'
or'deleted'
. Only applies if status is'synced'
. - directionSyncDirection optional
Sync direction for the
onFileStatusChanged
event. Sync direction value can be'local_to_remote'
or'remote_to_local'
. Only applies if status is'synced'
. - fileEntryEntry
fileEntry
for the target file whose status has changed. Contains name and path information of synchronized file. On file deletion,fileEntry
information will still be available but file will no longer exist. - status
Resulting file status after
onFileStatusChanged
event. The status value can be'synced'
,'pending'
or'conflicting'
.
FileStatusInfo
Properties
- errorstring optional
Optional error that is only returned if there was a problem retrieving the FileStatus for the given file.
- fileEntryEntry
One of the Entry's originally given to getFileStatuses.
- status
The status value can be
'synced'
,'pending'
or'conflicting'
.
ServiceInfo
Properties
- descriptionstring
- state
StorageInfo
Properties
- quotaBytesnumber
- usageBytesnumber
ConflictResolutionPolicy
Enum
"last_write_win"
, or "manual"
FileStatus
Enum
"synced"
, "pending"
, or "conflicting"
ServiceStatus
Enum
"initializing"
, "running"
, "authentication_required"
, "temporary_unavailable"
, or "disabled"
SyncAction
Enum
"added"
, "updated"
, or "deleted"
SyncDirection
Enum
"local_to_remote"
, or "remote_to_local"
Methods
getConflictResolutionPolicy
syncFileSystem.getConflictResolutionPolicy(callback: function)
Gets the current conflict resolution policy.
Parameters
- callbackfunction
A callback type for getConflictResolutionPolicy.
The callback parameter should be a function that looks like this:
(policy: ConflictResolutionPolicy) => {...}
- policy
getFileStatus
syncFileSystem.getFileStatus(fileEntry: Entry, callback: function)
Returns the FileStatus
for the given fileEntry
. The status value can be 'synced'
, 'pending'
or 'conflicting'
. Note that 'conflicting'
state only happens when the service's conflict resolution policy is set to 'manual'
.
Parameters
- fileEntryEntry
- callbackfunction
A callback type for getFileStatus.
The callback parameter should be a function that looks like this:
(status: FileStatus) => {...}
- status
getFileStatuses
syncFileSystem.getFileStatuses(fileEntries: object[], callback: function)
Returns each FileStatus
for the given fileEntry
array. Typically called with the result from dirReader.readEntries().
Parameters
- fileEntriesobject[]
- callbackfunction
A callback type for getFileStatuses.
The callback parameter should be a function that looks like this:
(status: FileStatusInfo[]) => {...}
- status
getServiceStatus
syncFileSystem.getServiceStatus(callback: function)
Returns the current sync backend status.
Parameters
- callbackfunction
A callback type for getServiceStatus.
The callback parameter should be a function that looks like this:
(status: ServiceStatus) => {...}
- status
getUsageAndQuota
syncFileSystem.getUsageAndQuota(fileSystem: DOMFileSystem, callback: function)
Returns the current usage and quota in bytes for the 'syncable'
file storage for the app.
Parameters
- fileSystemDOMFileSystem
- callbackfunction
A callback type for getUsageAndQuota.
The callback parameter should be a function that looks like this:
(info: StorageInfo) => {...}
- info
requestFileSystem
syncFileSystem.requestFileSystem(callback: function)
Returns a syncable filesystem backed by Google Drive. The returned DOMFileSystem
instance can be operated on in the same way as the Temporary and Persistant file systems (see http://dev.w3.org/2009/dap/file-system/file-dir-sys.html).
Calling this multiple times from the same app will return the same handle to the same file system.
Note this call can fail. For example, if the user is not signed in to Chrome or if there is no network operation. To handle these errors it is important chrome.runtime.lastError is checked in the callback.
Parameters
- callbackfunction
A callback type for requestFileSystem.
The callback parameter should be a function that looks like this:
(fileSystem: DOMFileSystem) => {...}
- fileSystemDOMFileSystem
setConflictResolutionPolicy
syncFileSystem.setConflictResolutionPolicy(policy: ConflictResolutionPolicy, callback: function)
Sets the default conflict resolution policy for the 'syncable'
file storage for the app. By default it is set to 'last_write_win'
. When conflict resolution policy is set to 'last_write_win'
conflicts for existing files are automatically resolved next time the file is updated. callback
can be optionally given to know if the request has succeeded or not.
Parameters
- policy
- callbackfunction
A generic result callback to indicate success or failure.
The callback parameter should be a function that looks like this:
() => {...}
Events
onFileStatusChanged
syncFileSystem.onFileStatusChanged.addListener(listener: function)
Fired when a file has been updated by the background sync service.
onServiceStatusChanged
syncFileSystem.onServiceStatusChanged.addListener(listener: function)
Fired when an error or other status change has happened in the sync backend (for example, when the sync is temporarily disabled due to network or authentication error).
Event
- listenerfunction
The listener parameter should be a function that looks like this:
(detail: ServiceInfo) => {...}
- detail