chrome.fileSystemProvider
描述: |
使用 chrome.fileSystemProvider API 创建可以在 Chrome OS
文件管理器中访问的文件系统。
|
可用版本: |
尚未完全实现,您必须通过源代码建立 Chromium 才能尝试该 API。了解更多内容
|
权限: |
"fileSystemProvider"
|
清单文件
您必须在扩展程序的清单文件中声明 "fileSystemProvider" 权限才能使用文件系统提供者 API。例如:
{ "name": "我的扩展程序", ... "permissions": [ "fileSystemProvider" ], ... }
概述
文件系统提供者 API 允许扩展程序支持虚拟文件系统,可以在 Chrome OS 的文件管理器中使用。例如可以释放压缩包,还有访问 Google 云端硬盘以外的其他云端文件。
文件处理程序
提供的文件系统既可以提供来自外部(例如远程服务起)的文件系统内容,也可以使用本地文件(例如压缩包)作为输入。
在第二种情况下,提供文件系统的扩展程序清单文件中应当包含 file_handlers 项,当指定文件在文件管理器中选择时启动。当扩展程序由于处理文件而执行时,它应当挂载文件系统,并开始从提供的文件获取内容。
生命周期
提供的文件系统挂载后,Chrome 会记录下来,重新启动后会自动重新挂载。因此,一旦文件系统由提供的扩展程序挂载,它会始终保留,直到扩展程序卸载或调用 unmount 方法。
如果作为文件处理程序,处理的文件需要保留下来,以便重启,或提供文件系统的扩展程序事件页面暂停和恢复时访问。这种情况下,您应该使用 fileSystem.retainEntry 和 fileSystem.restoreEntry。
摘要
类型 | |
---|---|
ProviderError | |
EntryMetadata | |
CreateDirectoryRequestedOptions | |
DeleteEntryRequestedOptions | |
CreateFileRequestedOptions | |
CopyEntryRequestedOptions | |
MoveEntryRequestedOptions | |
TruncateRequestedOptions | |
WriteFileRequestedOptions | |
方法 | |
mount −
chrome.fileSystemProvider.mount(object options, function successCallback, function errorCallback)
| |
unmount −
chrome.fileSystemProvider.unmount(object options, function successCallback, function errorCallback)
| |
事件 | |
onUnmountRequested | |
onGetMetadataRequested | |
onReadDirectoryRequested | |
onOpenFileRequested | |
onCloseFileRequested | |
onReadFileRequested |
类型
ProviderError
枚举 |
---|
"OK" ,
"FAILED" ,
"IN_USE" ,
"EXISTS" ,
"NOT_FOUND" ,
"ACCESS_DENIED" ,
"TOO_MANY_OPENED" ,
"NO_MEMORY" ,
"NO_SPACE" ,
"NOT_A_DIRECTORY" ,
"INVALID_OPERATION" ,
"SECURITY" ,
"ABORT" ,
"NOT_A_FILE" ,
"NOT_EMPTY" ,
"INVALID_URL" ,
or "IO"
|
EntryMetadata
属性 | ||
---|---|---|
boolean | isDirectory |
如果为目录则为 true。 |
string | name |
项目名称(不是完整路径)。 |
double | size |
文件大小,以字节为单位。 |
Date | modificationTime |
该项目上一次修改的时间。 |
string | (可选) mimeType |
该项目的 MIME 类型。 |
CreateDirectoryRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | directoryPath | |
boolean | exclusive | |
boolean | recursive |
DeleteEntryRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | entryPath | |
boolean | recursive |
CreateFileRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | filePath |
CopyEntryRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | sourcePath | |
string | targetPath |
MoveEntryRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | sourcePath | |
string | targetPath |
TruncateRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
string | filePath | |
double | length |
WriteFileRequestedOptions
属性 | ||
---|---|---|
string | fileSystemId | |
integer | requestId | |
integer | openRequestId | |
double | offset | |
double | length | |
ArrayBuffer | data |
方法
mount
chrome.fileSystemProvider.mount(object options, function successCallback, function errorCallback)
挂载指定 fileSystemId
(文件系统标识符)和 displayName
(显示名称)的文件系统。displayName
显示在文件管理器的左侧面板,可以包含任意字符,包括“/”,但不能为空字符串。displayName
应当具有描述性,但不一定需要唯一。文件管理器用户界面中,重复的显示名称后会添加“(1)”这样的后缀使之唯一。
如果传递的 fileSystemId
对应的文件系统已经由当前扩展程序挂载,则会调用 errorCallback
,并传递 ProviderError.EXISTS
值。fileSystemId
不能为空字符串。
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
object | options |
|
||||||
function | successCallback |
接收 mount() 函数结果的回调函数。
|
||||||
function | errorCallback |
处理由浏览器产生的错误的回调函数。 errorCallback 参数应该是一个如下形式的函数: function(DOMError error) {...};
|
unmount
chrome.fileSystemProvider.unmount(object options, function successCallback, function errorCallback)
取消挂载指定 fileSystemId
(文件系统标识符)的文件系统,应当在 onUnmountRequested
执行后调用。此外,提供文件系统的扩展程序即使没有被请求也可以进行取消挂载操作(例如连接丢失或文件错误的情况下)。如果不存在指定标识符的文件系统,或取消挂载失败,则会调用 errorCallback
。
参数 | ||||||||
---|---|---|---|---|---|---|---|---|
object | options |
|
||||||
function | successCallback |
接收 unmount() 函数结果的回调函数。
|
||||||
function | errorCallback |
处理由浏览器产生的错误的回调函数。 errorCallback 参数应该是一个如下形式的函数: function(DOMError error) {...};
|
事件
onUnmountRequested
请求取消挂载标识符为 fileSystemId
的文件系统时产生。响应该事件时应调用 unmount
API 方法以及 successCallback
。如果不能取消挂载(例如操作未完成),必须调用 errorCallback
。
addListener
chrome.fileSystemProvider.onUnmountRequested.addListener(function callback)
参数 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|
onGetMetadataRequested
请求位于 entryPath
的文件或目录元数据时产生,您应该调用 successCallback
返回元数据,如果发生错误则必须调用 errorCallback
。
addListener
chrome.fileSystemProvider.onGetMetadataRequested.addListener(function callback)
参数 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|
onReadDirectoryRequested
请求位于 directoryPath
的目录内容时产生,您应该多次调用 successCallback
分块返回结果,如果发生错误则必须调用 errorCallback
。
addListener
chrome.fileSystemProvider.onReadDirectoryRequested.addListener(function callback)
参数 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|
onOpenFileRequested
请求打开位于 directoryPath
的文件时产生。如果文件不存在,则该操作必须失败。
addListener
chrome.fileSystemProvider.onOpenFileRequested.addListener(function callback)
参数 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|
onCloseFileRequested
请求关闭之前使用 openRequestId
打开的文件时产生。
addListener
chrome.fileSystemProvider.onCloseFileRequested.addListener(function callback)
参数 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|
onReadFileRequested
请求读取之前使用 openRequestId
打开的文件内容时产生。您应该多次调用 successCallback
分块返回结果,如果发生错误,则必须调用 errorCallback
。
addListener
chrome.fileSystemProvider.onReadFileRequested.addListener(function callback)
参数 | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object options, function successCallback, function errorCallback) {...};
|