浏览器端JS:文件系统API与文件系统访问API?

问题描述 投票:0回答:2

有一个文件系统 API,但现在显示为已弃用:
https://developer.mozilla.org/en-US/docs/Web/API/Window/requestFileSystem

现在还有另一个文件系统访问 API:
https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API

旧 API 发生了什么以及为什么停止使用?新的文件系统访问 API 在所有常见浏览器中应该稳定吗?

javascript web cross-browser filesystems html5-filesystem
2个回答
7
投票

事实证明,文件系统访问 API 并没有被弃用,它只是没有标准化(2021 年 5 月);已弃用的是函数

window.requestFileSystem
;基于 Chromium 的浏览器上的相同功能是
window.webkitRequestFileSystem

File System API
用于在不需要使用基于浏览器的数据库(IndexedDB)(尤其是为了存储文件的目的)时为每个网站创建虚拟驱动器(临时或持久)。
https://developer.mozilla.org/en-US/docs/Web/API/FileSystem

File System Access API
则不同,它用于访问操作系统的真实文件系统。该 API 现已标准化,可在基于 Chromium 的浏览器上使用(2021 年 5 月)。 Firefox 尚未适配此 API。
https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API

这些 API 的状态:https://developer.mozilla.org/en-US/docs/Web/API


0
投票

在我看来,与文件相关的 API 的文档真是一团糟。我还没有找到一个明确的地方来消除所有术语之间的歧义。

迄今为止我见过的最好的总结是可能在这里。但即使如此,它也留下了很多混乱和歧义(例如,因为它不包括链接 API 的所有各种名称)。

所以这个 StackOverflow 答案是我将尝试消除它们之间歧义的地方。我现在没有时间 100% 验证这里的所有内容,所以这是一个“尽力而为”的总结,欢迎纠正。

文件相关API

API“A”

所见使用的名称:

组件:

描述:

  • 显然是存储大量本地数据的推荐方法。
  • 如果用户授予许可,还提供了一种访问用户驱动器上“实际文件”的方法。 (如果仅使用
    Origin Private File System
    组件则没有必要,该组件自沙箱以来不需要用户权限)

API“B”

所见使用的名称:

  • FileSystem API
    MDN 页面(导航栏显示“Web API -> 文件系统”)
  • File and Directory Entries API
    MDN 页面(目录标题)
  • File API: Directories and System
    W3C 页面(页面标题)

描述:

  • 这个 API 的至少一部分(
    window.requestFileSystem
    函数)似乎已经已被弃用,但仍在使用中,例如。通过 Github,根据此评论
  • 但是,此 API 的其余部分(或至少大部分)仍然有效/未弃用。例如,它用于读取拖放文件夹/文件树的内容。

API“C”

所见使用的名称:

描述:

  • 基本文件结构;被一些更高级别的 API 使用。

API“D”[已弃用]

所见使用的名称:

描述:

  • 现已弃用/放弃
  • 实验性;在 chrome 中可以在旗帜后面使用。

其他存储API

这些并不专门处理“文件”,但为了全面起见,这些是可从 Web API 使用的其他存储 API:

© www.soinside.com 2019 - 2024. All rights reserved.