chrome.syncFileSystem

描述 使用 chrome.syncFileSystem API 在 Google 云端硬盘上保存和同步数据。该 API 并不是用来访问存储在 Google 云端硬盘上的任何用户文档的,它提供了应用专用的可同步存储区,用于离线和缓存用途,这样同样的数据就可以在不同的客户端间使用。有关使用该 API 的更多信息,请阅读管理数据
可用版本 从 Chrome 27 开始支持。
权限 "syncFileSystem"
了解更多 管理数据
Chrome 浏览器办公时间:同步文件系统

摘要

类型
ServiceStatus
FileStatus
ConflictResolutionPolicy
方法
requestFileSystem chrome.syncFileSystem.requestFileSystem(function callback)
setConflictResolutionPolicy chrome.syncFileSystem.setConflictResolutionPolicy( ConflictResolutionPolicy policy, function callback)
getConflictResolutionPolicy chrome.syncFileSystem.getConflictResolutionPolicy(function callback)
getUsageAndQuota chrome.syncFileSystem.getUsageAndQuota(DOMFileSystem fileSystem, function callback)
getFileStatus chrome.syncFileSystem.getFileStatus(Entry fileEntry, function callback)
getFileStatuses chrome.syncFileSystem.getFileStatuses(array of object fileEntries, function callback)
getServiceStatus chrome.syncFileSystem.getServiceStatus(function callback)
事件
onServiceStatusChanged
onFileStatusChanged

类型

ServiceStatus

枚举
"initializing", "running", "authentication_required", "temporary_unavailable", or "disabled"

FileStatus

枚举
"synced", "pending", or "conflicting"

ConflictResolutionPolicy

枚举
"last_write_win", or "manual"

方法

requestFileSystem

chrome.syncFileSystem.requestFileSystem(function callback)

返回由 Google 云端硬盘支持的同步文件系统,返回的 DOMFileSystem 实例可以以类似于临时和持久文件系统(参见 http://www.w3.org/TR/file-system-api/)的方式操作,但是返回的文件系统对象目前还不支持目录操作。您可以读取根目录,获取文件项列表(创建新的 DirectoryReader),但是不能在里面创建目录。在同一个应用中多次调用该方法会返回指向同一个文件系统的同一个句柄。

注意,该调用可能会失败。例如,如果用户没有登录到 Chrome 或者没有网络连接。为了处理这些错误,您一定要在回调函数中检查 runtime.lastError

参数
function callback

用于 requestFileSystem 的回调函数。

callback 参数应该是一个如下形式的函数:

function(DOMFileSystem fileSystem) {...};
DOMFileSystem fileSystem

setConflictResolutionPolicy

chrome.syncFileSystem.setConflictResolutionPolicy( ConflictResolutionPolicy policy, function callback)

为应用设置同步文件存储的默认冲突解决策略,默认情况下为 'last_write_win'(手动)。当冲突解决策略设置为 'last_write_win' 时,已有文件的冲突在文件下一次更新时会自动解决。可以指定可选的 callback,以便知道请求是否成功。

参数
ConflictResolutionPolicy policy
function (可选)
callback

表示成功或失败的一般结果回调函数。

如果您指定了 callback 参数,它应该是一个如下形式的函数:

function() {...};

getConflictResolutionPolicy

chrome.syncFileSystem.getConflictResolutionPolicy(function callback)

获取当前的冲突解决策略。

参数
function callback

用于 getConflictResolutionPolicy 的回调函数。

callback 参数应该是一个如下形式的函数:

function( ConflictResolutionPolicy policy) {...};
ConflictResolutionPolicy policy

getUsageAndQuota

chrome.syncFileSystem.getUsageAndQuota(DOMFileSystem fileSystem, function callback)

返回该应用同步文件存储的当前用量与配额,以字节为单位。

参数
DOMFileSystem fileSystem
function callback

用于 getUsageAndQuota 的回调函数。

callback 参数应该是一个如下形式的函数:

function(object info) {...};
object info
integer usageBytes
integer quotaBytes

getFileStatus

chrome.syncFileSystem.getFileStatus(Entry fileEntry, function callback)

返回指定 fileEntry(文件项)的 FileStatus (文件状态),状态值可以为 'synced'(已同步)、'pending'(待定)或 'conflicting'(冲突)。注意,只有当服务的冲突解决策略设置为 'manual'(手动)时,才会发生 'conflicting'(冲突)状态。

参数
Entry fileEntry
function callback

用于 getFileStatus 的回调函数。

callback 参数应该是一个如下形式的函数:

function( FileStatus status) {...};
FileStatus status

getFileStatuses

chrome.syncFileSystem.getFileStatuses(array of object fileEntries, function callback)

返回指定 fileEntry(文件项)数组的每一个 FileStatus(文件状态),调用时通常传递 dirReader.readEntries() 的结果。

参数
array of object fileEntries

每一个对象的属性

function callback

用于 getFileStatuses 的回调函数。

callback 参数应该是一个如下形式的函数:

function(array of object status) {...};
array of object status

每一个对象的属性

Entry fileEntry

原来提供给 getFileStatuses 的某个 Entry(文件项)。

FileStatus status

状态值可以为 'synced'(已同步)、'pending'(待定)或 'conflicting'(冲突)。

string (可选)
error

如果获取指定文件的文件状态时遇到问题则返回可选的错误。

getServiceStatus

chrome.syncFileSystem.getServiceStatus(function callback)

从 Chrome 31 开始支持。

获取同步后端的当前状态。

参数
function callback

用于 getServiceStatus 的回调函数。

callback 参数应该是一个如下形式的函数:

function( ServiceStatus status) {...};
ServiceStatus status

事件

onServiceStatusChanged

当同步后端发生错误或其他状态更改时产生(例如同步由于网络或认证错误而暂时不可用)。

addListener

chrome.syncFileSystem.onServiceStatusChanged.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(object detail) {...};
object detail
ServiceStatus state
string description

onFileStatusChanged

当文件由后台的同步服务更新时产生。

addListener

chrome.syncFileSystem.onFileStatusChanged.addListener(function callback)
参数
function callback

callback 参数应该是一个如下形式的函数:

function(object detail) {...};
object detail
Entry fileEntry

状态更改的目标文件的 fileEntry(文件项),包含已同步文件的名称和路径信息。当文件删除时,fileEntry 信息仍然可用,但文件不再存在。

FileStatus status

onFileStatusChanged 事件发生后的文件状态,状态值可以为 'synced'(已同步)、'pending'(待定)或 'conflicting'(冲突)。

enum of "added", "updated", or "deleted" (可选)
action

产生 onFileStatusChanged 事件时执行的同步操作,操作值可以为 'added'(添加)、'updated'(更新)或 'deleted'(删除)。只有当状态为 'synced'(已同步)时才适用。

enum of "local_to_remote", or "remote_to_local" (可选)
direction

本次 onFileStatusChanged 事件的方向,同步方向值可以为 'local_to_remote'(本地到远程)或 'remote_to_local'(远程到本地)。只有当状态为 'synced' 时才适用。