chrome.fileSystemProvider

Description

使用 chrome.fileSystemProvider API 创建文件系统,可从 Chrome 操作系统上的文件管理器访问该文件系统。

Permissions

fileSystemProvider

Availability

Foreground only

# Manifest

您必须在扩展清单(extension manifest)中声明“fileSystemProvider”权限和部分才能使用文件系统提供程序 API。例如:

{
  "name": "My extension",
  ...
  "permissions": [
    "fileSystemProvider"
  ],
  ...
  "file_system_provider_capabilities": {
    "configurable": true,
    "watchable": false,
    "multiple_mounts": true,
    "source": "network"
  },
  ...
}

file_system_provider 部分必须声明如下:

  • configurable (boolean) - optional

    是否支持通过 onConfigureRequested 进行配置。默认情况下:false。

  • multiple_mounts (boolean) - optional

    是否支持多个(more than one)挂载的文件系统。默认情况下:false。

  • watchable (boolean) - optional

    是否支持设置观察者和通知更改。默认情况下:false。

  • source (enum of "file", "device", or "network") - required

    挂载文件系统的数据源。

文件应用程序使用上述信息来适当地呈现相关的 UI 元素。例如,如果将 configure 设置为 true,则将呈现用于配置卷的菜单项。同样,如果 multiple_mounts 设置为 true,则 Files 应用程序将允许从 UI 添加多个挂载点。如果 watchablefalse,则将呈现刷新按钮。请注意,如果可能,您应该添加对观察者的支持,以便可以立即自动反映文件系统上的更改。

# Overview

File System Provider API 允许扩展来支持虚拟文件系统,Chrome OS 上的文件管理器中提供了这些扩展。用例包括解压缩档案和访问云端硬盘以外的云服务中的文件。

# Mounting file systems(挂载文件系统)

提供扩展既可以提供来自外部源(例如远程服务器或 USB 设备)的文件系统内容,也可以使用本地文件(例如存档)作为其输入。

为了编写作为文件处理程序(源是“file”)的文件系统,提供程序必须是一个打包的应用程序,因为 onLaunched 事件不可用于扩展。

如果源是网络或设备,则应在调用 onMountRequested 事件时挂载文件系统。

Source 文件系统数据的来源 Entry point(入口点)
"file" 仅适用于打包的应用程序。
"device" or "network" onMountRequested

# Configuring file systems(配置文件系统)

安装后提供的文件系统可以通过 onConfigureRequested 事件进行配置。它对于通过网络提供内容以设置正确凭据的文件系统特别有用。处理此事件是可选的。

# Life cycle(生命周期)

提供的文件系统一旦安装就会被 Chrome 记住,并在重新启动或重新启动后自动重新安装。因此,一旦文件系统被提供的扩展挂载mounted,它将一直保持到扩展被卸载或扩展调用 unmount 方法。

Summary

Types

AbortRequestedOptions

PROPERTIES

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • operationRequestId

    number

    要中止的请求的 ID。

  • requestId

    number

    此请求的唯一标识符。

Action

Chrome 45+

PROPERTIES

  • id

    string

    动作的标识符。用于常见操作的任何字符串或 CommonActionId

  • title

    string optional

    动作的标题。对于常见操作,它可能会被忽略。

AddWatcherRequestedOptions

PROPERTIES

  • entryPath

    string

    要观察的条目的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • recursive

    boolean

    观察是否应该递归地包括所有子条目。它仅适用于目录。

  • requestId

    number

    此请求的唯一标识符。

Change

PROPERTIES

  • changeType

    ChangeType

    条目发生的更改的类型。

  • entryPath

    string

    更改条目的路径。

ChangeType

在观察到的目录上检测到的更改类型。

TYPE

"CHANGED", or "DELETED"

CloseFileRequestedOptions

PROPERTIES

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • openRequestId

    number

    用于打开文件的请求 ID。

  • requestId

    number

    此请求的唯一标识符。

CommonActionId

Chrome 45+

常见操作列表。 “SHARE”用于与他人共享文件。 “SAVE_FOR_OFFLINE”用于固定(保存离线访问)。“OFFLINE_NOT_NECESSARY”用于通知不再需要存储文件以供离线访问。由 onGetActionsRequestedonExecuteActionRequested 使用。

TYPE

"SAVE_FOR_OFFLINE", "OFFLINE_NOT_NECESSARY", or "SHARE"

ConfigureRequestedOptions

Chrome 44+

PROPERTIES

  • fileSystemId

    string

    要配置的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

CopyEntryRequestedOptions

PROPERTIES

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

  • sourcePath

    string

    要复制的条目的源路径。

  • targetPath

    string

    复制操作的目标路径。

CreateDirectoryRequestedOptions

PROPERTIES

  • directoryPath

    string

    要创建的目录的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • recursive

    boolean

    操作是否递归(仅适用于目录)

  • requestId

    number

    此请求的唯一标识符。

CreateFileRequestedOptions

PROPERTIES

  • filePath

    string

    要创建的文件的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

DeleteEntryRequestedOptions

PROPERTIES

  • entryPath

    string

    要删除的条目的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • recursive

    boolean

    操作是否递归(仅适用于目录)

  • requestId

    number

    此请求的唯一标识符。

EntryMetadata

PROPERTIES

  • isDirectory

    boolean optional

    如果是目录,则为真。如果在选项options中要求,则必须提供。

  • mimeType

    string optional

    条目的 Mime 类型。始终可选,但应在选项options中要求时提供。

  • modificationTime

    Date optional

    此条目的最后修改时间。如果在选项options中要求,则必须提供。

  • name

    string optional

    此条目的名称(不是完整路径名)。不得包含“/”。对于 root,它必须为空。如果在选项options中要求,则必须提供。

  • size

    number optional

    文件大小(以字节为单位)。如果在选项options中要求,则必须提供。

  • thumbnail

    string optional

    作为 PNG、JPEG 或 WEBP 格式的数据 URI 的缩略图图像,大小最多为 32 KB。可选,但只能在 onGetMetadataRequested 事件明确请求时提供。

ExecuteActionRequestedOptions

Chrome 45+

PROPERTIES

  • actionId

    string

    要执行的操作的标识符。

  • entryPaths

    string[]

    Chrome 47+

    要用于操作的条目的路径集。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

FileSystemInfo

PROPERTIES

  • displayName

    string

    文件系统的可读名称。

  • fileSystemId

    string

    文件系统的标识符。

  • openedFiles

    OpenedFile[]

    当前打开的文件列表。

  • openedFilesLimit

    number

    一次可以打开的最大文件数。如果为0,则不受限制。

  • supportsNotifyTag

    boolean optional

    Chrome 45+

    文件系统是否支持用于观察目录的标签tag字段。

  • watchers

    Watcher[]

    Chrome 45+

    观察者名单。

  • writable

    boolean

    文件系统是否支持可能改变文件系统内容的操作(如创建、删除或写入文件)。

GetActionsRequestedOptions

Chrome 45+

PROPERTIES

  • entryPaths

    string[]

    Chrome 47+

    动作列表的条目路径列表。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

GetMetadataRequestedOptions

PROPERTIES

  • entryPath

    string

    获取元数据的条目的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • isDirectory

    boolean

    Chrome 49+

    如果请求 is_directory 值,则设置为 true

  • mimeType

    boolean

    Chrome 49+

    如果请求 mimeType 值,则设置为 true

  • modificationTime

    boolean

    Chrome 49+

    如果请求 modifyTime 值,则设置为 true

  • name

    boolean

    Chrome 49+

    如果请求名称name值,则设置为 true

  • requestId

    number

    此请求的唯一标识符。

  • size

    boolean

    Chrome 49+

    如果请求大小size值,则设置为 true

  • thumbnail

    boolean

    如果请求缩略图,则设置为 true

MountOptions

PROPERTIES

  • displayName

    string

    文件系统的可读名称。

  • fileSystemId

    string

    文件系统的字符串标识符。每个扩展名必须是唯一的。

  • openedFilesLimit

    number optional

    一次可以打开的最大文件数。如果未指定,或为 0,则不受限制。

  • persistent

    boolean optional

    Chrome 64+

    框架是否应在下一次登录会话中恢复文件系统。默认为真。

  • supportsNotifyTag

    boolean optional

    Chrome 45+

    文件系统是否支持观察目录的标签Tag字段。

  • writable

    boolean optional

    文件系统是否支持可能改变文件系统内容的操作(如创建、删除或写入文件)。

MoveEntryRequestedOptions

PROPERTIES

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

  • sourcePath

    string

    要移动到新位置的条目的源路径。

  • targetPath

    string

    复制操作的目标路径。

NotifyOptions

PROPERTIES

  • changeType

    ChangeType

    观察到的条目发生的变化的类型。如果是 DELETED,则观察条目将自动从观察条目列表中删除。

  • changes

    Change[] optional

    观察目录中条目的更改列表(包括条目本身)

  • fileSystemId

    string

    与此更改相关的文件系统的标识符。

  • observedPath

    string

    观察到的条目的路径。

  • recursive

    boolean

    观察到的条目的模式。

  • tag

    string optional

    通知的标签。如果文件系统是使用 supportsNotifyTag 选项挂载的,则需要。请注意,即使在系统关闭时,此标志对于提供有关更改的通知也是必要的。

OpenedFile

PROPERTIES

  • filePath

    string

    打开的文件的路径。

  • mode

    OpenFileMode

    打开文件是为了读还是写。

  • openRequestId

    number

    由连续读/写和关闭请求使用的请求 ID。

OpenFileMode

打开文件的方式。由 onOpenFileRequested 使用。

TYPE

"READ", or "WRITE"

OpenFileRequestedOptions

PROPERTIES

  • filePath

    string

    要打开的文件的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • mode

    OpenFileMode

    该文件将用于读取还是写入。

  • requestId

    number

    将被连续读/写和关闭请求使用的请求 ID。

ProviderError

通过提供扩展来响应请求以及在调用 API 方法时出现错误时使用的错误代码。为了成功,必须使用“OK”。

TYPE

"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"

ReadDirectoryRequestedOptions

PROPERTIES

  • directoryPath

    string

    请求内容的目录的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • isDirectory

    boolean

    Chrome 49+

    如果请求 is_directory 值,则设置为 true

  • mimeType

    boolean

    Chrome 49+

    如果请求 mimeType 值,则设置为 true

  • modificationTime

    boolean

    Chrome 49+

    如果请求 modifyTime 值,则设置为 true

  • name

    boolean

    Chrome 49+

    如果请求名称name值,则设置为 true

  • requestId

    number

    此请求的唯一标识符。

  • size

    boolean

    Chrome 49+

    如果请求大小size值,则设置为 true

  • thumbnail

    boolean

    Chrome 49+

    如果请求缩略图,则设置为 true

ReadFileRequestedOptions

PROPERTIES

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • length

    number

    要返回的字节数。

  • offset

    number

    在文件中的位置(以字节为单位)开始读取。

  • openRequestId

    number

    用于打开文件的请求 ID。

  • requestId

    number

    此请求的唯一标识符。

RemoveWatcherRequestedOptions

PROPERTIES

  • entryPath

    string

    被监视条目的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • recursive

    boolean

    观察者模式。

  • requestId

    number

    此请求的唯一标识符。

TruncateRequestedOptions

PROPERTIES

  • filePath

    string

    要截断的文件的路径。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • length

    number

    操作完成后要保留的字节数。

  • requestId

    number

    此请求的唯一标识符。

UnmountOptions

PROPERTIES

  • fileSystemId

    string

    要卸载的文件系统的标识符。

UnmountRequestedOptions

PROPERTIES

  • fileSystemId

    string

    要卸载的文件系统的标识符。

  • requestId

    number

    此请求的唯一标识符。

Watcher

PROPERTIES

  • entryPath

    string

    正在观察的条目的路径。

  • lastTag

    string optional

    观察者的最后一次通知使用的标签。

  • recursive

    boolean

    观看是否应该递归地包括所有子条目。它仅适用于目录。

WriteFileRequestedOptions

PROPERTIES

  • data

    ArrayBuffer

    要写入文件的字节缓冲区。

  • fileSystemId

    string

    与此操作相关的文件系统的标识符。

  • offset

    number

    在文件中的位置(以字节为单位)开始写入字节。

  • openRequestId

    number

    用于打开文件的请求 ID。

  • requestId

    number

    此请求的唯一标识符。

Methods

get

chrome.fileSystemProvider.get(
  fileSystemId: string,
  callback?: function,
)

Promise

返回有关具有传递的 fileSystemId 的文件系统的信息。

PARAMETERS

RETURNS

  • Promise<FileSystemInfo>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

getAll

chrome.fileSystemProvider.getAll(
  callback?: function,
)

Promise

返回扩展安装的所有文件系统。

PARAMETERS

RETURNS

  • Promise<FileSystemInfo[]>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

mount

chrome.fileSystemProvider.mount( options: MountOptions, callback?: function, )

Promise

使用给定的 fileSystemIddisplayName 挂载文件系统。 displayName 将显示在文件应用程序的左侧面板中。 displayName 可以包含任何字符,包括'/',但不能是空字符串。displayName 必须是描述性的,但不必是唯一的。 fileSystemId 不能是空字符串。

根据所挂载的文件系统的类型,必须适当地设置源选项。

如果出现错误,runtime.lastError 将被设置为相应的错误代码。

PARAMETERS

  • options

    MountOptions

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

notify

chrome.fileSystemProvider.notify( options: NotifyOptions, callback?: function, )

Promise Chrome 45+

以递归recursive模式通知观察路径observedPath中观察目录的变化。如果文件系统使用supportsNofityTag 挂载,则必须提供标签tag,并且始终报告自上次通知以来的所有更改,即使系统已关闭。最后一个标签可以通过 getAll 获得。

要使用,file_system_provider.notify 清单选项必须设置为 true。

tag 的值可以是每个调用唯一的任何字符串,因此可以识别最后注册的通知。例如。如果提供扩展在重新启动后开始,并且最后注册的通知notify的标签等于“123”,那么它应该为自标记为“123”的更改以来发生的所有更改调用通知。它不能是空字符串。

并非所有提供者都能够提供标签,但如果文件系统有更改日志,则标签可以是例如。更改号或修订号。

请注意,如果删除了父目录,则所有后代条目也将被删除,如果它们被监视,则必须将这一事实通知 API。此外,如果一个目录被重命名,那么所有后代条目实际上都会被删除,因为它们的原始路径下不再有条目。

如果出现错误,runtime.lastError 将设置相应的错误代码。

PARAMETERS

  • options

    NotifyOptions

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

unmount

chrome.fileSystemProvider.unmount( options: UnmountOptions, callback?: function, )

Promise

使用给定的 fileSystemId 卸载文件系统。它必须在调用 onUnmountRequested 之后调用。此外,如果没有请求(例如,在连接丢失或文件错误的情况下),提供的扩展可以决定执行卸载。

如果出现错误,runtime.lastError 将被设置为相应的错误代码。

PARAMETERS

  • options

    UnmountOptions

  • callback

    function optional

    The callback parameter looks like:

    () => void

RETURNS

  • Promise<void>

    Pending

    这仅在未指定回调参数时返回 Promise,并且使用 MV3+。 Promise 中的类型与回调的第一个参数相同。

Events

onAbortRequested

chrome.fileSystemProvider.onAbortRequested.addListener(
  callback: function,
)

在请求使用 operationRequestId 中止操作时引发。必须立即停止使用 operationRequestId 执行的操作并执行此中止请求的 successCallback。如果中止失败,则必须调用 errorCallback。请注意,不得调用中止操作的回调,因为它们将被忽略。尽管调用了errorCallback,但请求可能会被强行中止。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (options: AbortRequestedOptions, successCallback: function, errorCallback: function) => void

onAddWatcherRequested

chrome.fileSystemProvider.onAddWatcherRequested.addListener(
  callback: function,
)

Chrome 45+

请求设置新的目录观察器时引发。如果发生错误,则必须调用 errorCallback

PARAMETERS

onCloseFileRequested

chrome.fileSystemProvider.onCloseFileRequested.addListener(
  callback: function,
)

在打开以前用 openRequestId 打开的文件时引发,要求关闭。

PARAMETERS

onConfigureRequested

chrome.fileSystemProvider.onConfigureRequested.addListener(
  callback: function,
)

Chrome 44+

请求显示 fileSystemId 的配置对话框时引发。如果它被处理,file_system_provider.configurable manfiest 选项必须设置为 true

PARAMETERS

onCopyEntryRequested

chrome.fileSystemProvider.onCopyEntryRequested.addListener(
  callback: function,
)

请求复制条目(递归,如果是目录)时引发。如果发生错误,则必须调用 errorCallback

PARAMETERS

onCreateDirectoryRequested

chrome.fileSystemProvider.onCreateDirectoryRequested.addListener(
  callback: function,
)

请求创建目录时引发。如果目标目录已存在,则操作必须失败并显示 EXISTS 错误。如果 recursive 为真,则必须创建目录路径上所有缺失的目录。

PARAMETERS

onCreateFileRequested

chrome.fileSystemProvider.onCreateFileRequested.addListener(
  callback: function,
)

请求创建文件时引发。如果文件已经存在,则必须使用“EXISTS”错误代码调用 errorCallback

PARAMETERS

onDeleteEntryRequested

chrome.fileSystemProvider.onDeleteEntryRequested.addListener(
  callback: function,
)

请求删除条目时引发。如果 recursive 为真,并且条目是一个目录,那么里面的所有条目也必须被递归删除。

PARAMETERS

onExecuteActionRequested

chrome.fileSystemProvider.onExecuteActionRequested.addListener(
  callback: function,
)

Chrome 48+

对一组文件或目录执行操作时引发\请求。动作完成后,必须调用successCallback。出错时,必须调用 errorCallback

PARAMETERS

onGetActionsRequested

chrome.fileSystemProvider.onGetActionsRequested.addListener(
  callback: function,
)

Chrome 48+

当请求 entryPaths 处的一组文件或目录的操作列表时引发。所有返回的操作必须适用于每个条目。如果没有此类操作,则应返回一个空数组。这些操作必须与 successCallback 调用一起返回。如果出现错误,则必须调用 errorCallback

PARAMETERS

onGetMetadataRequested

chrome.fileSystemProvider.onGetMetadataRequested.addListener(
  callback: function,
)

当请求 entryPath 处的文件或目录的元数据时引发。元数据必须与 successCallback 调用一起返回。如果出现错误,则必须调用 errorCallback

PARAMETERS

onMountRequested

chrome.fileSystemProvider.onMountRequested.addListener(
  callback: function,
)

Chrome 44+

在显示请求安装新文件系统的对话框时引发。如果扩展程序/应用程序是文件处理程序,则不应处理此事件。相反,应该处理 app.runtime.onLaunched 以便在打开文件时挂载新的文件系统。对于多个挂载,file_system_provider.multiple_mounts 清单选项必须设置为 true

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (successCallback: function, errorCallback: function) => void
    • successCallback

      function

      The successCallback parameter looks like:

      () => void
      • errorCallback

      function

      The errorCallback parameter looks like:

      (error: ProviderError) => void

onMoveEntryRequested

chrome.fileSystemProvider.onMoveEntryRequested.addListener(
  callback: function,
)

请求移动条目(如果是目录,则递归)时引发。如果发生错误,则必须调用 errorCallback

PARAMETERS

onOpenFileRequested

chrome.fileSystemProvider.onOpenFileRequested.addListener(
  callback: function,
)

请求在 filePath 处打开文件时引发。如果文件不存在,则操作必定失败。可以使用 MountOptions 指定一次打开的最大文件数。

PARAMETERS

onReadDirectoryRequested

chrome.fileSystemProvider.onReadDirectoryRequested.addListener(
  callback: function,
)

当请求目录路径directoryPath中的目录内容时引发。结果必须通过多次调用 successCallback 以块的形式返回。如果出现错误,则必须调用 errorCallback

PARAMETERS

onReadFileRequested

chrome.fileSystemProvider.onReadFileRequested.addListener(
  callback: function,
)

请求读取先前使用 openRequestId 打开的文件的内容时引发。结果必须通过多次调用successCallback 以块的形式返回。如果出现错误,则必须调用 errorCallback

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (options: ReadFileRequestedOptions, successCallback: function, errorCallback: function) => void

    • options

      ReadFileRequestedOptions

    • successCallback

      function

      The successCallback parameter looks like:

      (data: ArrayBuffer, hasMore: boolean) => void
      • data

        ArrayBuffer

      • hasMore

        boolean

onRemoveWatcherRequested

chrome.fileSystemProvider.onRemoveWatcherRequested.addListener(
  callback: function,
)

Chrome 45+

当观察者应该被移除时引发。如果发生错误,则必须调用 errorCallback

PARAMETERS

onTruncateRequested

chrome.fileSystemProvider.onTruncateRequested.addListener(
  callback: function,
)

在请求将文件截断到所需长度时引发。如果发生错误,则必须调用 errorCallback

PARAMETERS

onUnmountRequested

chrome.fileSystemProvider.onUnmountRequested.addListener(
  callback: function,
)

请求卸载具有 fileSystemId 标识符的文件系统时引发。在响应中,unmount API 方法必须与 successCallback 一起调用。如果无法卸载(例如,由于挂起的操作),则必须调用 errorCallback

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (options: UnmountRequestedOptions, successCallback: function, errorCallback: function) => void

onWriteFileRequested

chrome.fileSystemProvider.onWriteFileRequested.addListener(
  callback: function,
)

将内容写入先前使用 openRequestId 打开的文件时引发。

PARAMETERS

By.一粒技术服务.

results matching ""

    No results matching ""