Firefox 插件是否有类似于 Chrome 的文件系统 API 的东西?

Is there anything similar to Chrome's fileSystem API for Firefox addons?

我制作了一个 Chrome 应用程序,它严重依赖 Chrome 的文件系统 API 来记录和保存来自各个网站的视频流。由于流数据在保存之前在 javascript 中进行了处理,因此仅下载流是行不通的。

现在正在考虑做火狐版...

我知道 Firefox 有一个 sandboxed 文件系统 API,但据我所知,无法将文件保存到物理文件系统。

我能看到的唯一选项是从沙盒文件系统创建一个 blob 并下载该 blob。

其实我有两个问题:

  1. 我是否遗漏了从 Firefox 插件直接在物理文件系统中创建和保存文件的任何选项?

  2. 即使我必须依赖沙盒文件系统,是否可以以追加模式打开文件,即。将数据附加到现有文件?

对您的第一个问题是肯定的:有 io/file API. Opening a file returns a stream (io/bytestream)。来自文档的示例

function readBinaryDataFromFile (filename) {
  var fileIO = require("sdk/io/file");
  var data = null;
  if (fileIO.exists(filename)) {
    var ByteReader = fileIO.open(filename, "rb");
    if (!ByteReader.closed) {
      data = ByteReader.read();
      ByteReader.close();
    }
  }
  return data;
}

function writeBinaryDataToFile(data, filename) {
  var fileIO = require("sdk/io/file");
  var ByteWriter = fileIO.open(filename, "wb");
  if (!ByteWriter.closed) {
    ByteWriter.write(data);
    ByteWriter.close();
  }
}