ChromeWorker 写一个巨大的文件
ChromeWorker to write a huge file
在我的扩展中,我需要将一个巨大的文件(比如大约 20 GB)写入磁盘。目前我在主线程中进行,但文件创建是非常昂贵的操作。我正要将整个文件创建过程转移到 ChromeWorker,但基于 https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers 我无法从 ChromeWorker 访问 nsiFile。
所以我的问题是:
1. 是否可以从 ChromeWorker 中访问 Cc、Ci 和 Cu?
2. 如果不是,在 Firefox 中创建和填充大文件的最有效方法是什么。请注意,我需要根据段和偏移量 (Ci.nsISeekableStream).
来编写文件
无法从 ChromeWorker 访问 nsIFile。但是 nsIFile 是可怕的同步选项。
选择 OS.File:https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/OSFile.jsm
在该页面上转到 link 以了解工作人员的用法:https://developer.mozilla.org/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_workers
在主线程上 os.file return 承诺。
在 worker 中它们是同步的。使用 try-catch 将你的 os.file 函数包装在 worker 中,当发生错误时(如 os.file.remove with option of ignoreAbsent set to false)然后 catch 将保持 OS.File .错误对象。
顺便说一句,迁移到 ChromeWorker 太棒了!我是 ChromeWorkers 的超级粉丝。我在这里使用 chromeworker 编写了一个简单的 jsm 示例:https://github.com/Noitidart/jpm-chromeworker
对于段,您必须 OS.File.open 然后在 return 值上执行 .setPosition()
然后您可以从该位置读取一定数量的字节,或者写,什么的。它很棒的东西。 OS.File 是新的文件操作方式,也是推荐的方式。它已经存在了一段时间了,就像 Firefox 29 或更早版本一样。
在我的扩展中,我需要将一个巨大的文件(比如大约 20 GB)写入磁盘。目前我在主线程中进行,但文件创建是非常昂贵的操作。我正要将整个文件创建过程转移到 ChromeWorker,但基于 https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers 我无法从 ChromeWorker 访问 nsiFile。
所以我的问题是: 1. 是否可以从 ChromeWorker 中访问 Cc、Ci 和 Cu? 2. 如果不是,在 Firefox 中创建和填充大文件的最有效方法是什么。请注意,我需要根据段和偏移量 (Ci.nsISeekableStream).
来编写文件无法从 ChromeWorker 访问 nsIFile。但是 nsIFile 是可怕的同步选项。
选择 OS.File:https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/OSFile.jsm
在该页面上转到 link 以了解工作人员的用法:https://developer.mozilla.org/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_workers
在主线程上 os.file return 承诺。
在 worker 中它们是同步的。使用 try-catch 将你的 os.file 函数包装在 worker 中,当发生错误时(如 os.file.remove with option of ignoreAbsent set to false)然后 catch 将保持 OS.File .错误对象。
顺便说一句,迁移到 ChromeWorker 太棒了!我是 ChromeWorkers 的超级粉丝。我在这里使用 chromeworker 编写了一个简单的 jsm 示例:https://github.com/Noitidart/jpm-chromeworker
对于段,您必须 OS.File.open 然后在 return 值上执行 .setPosition()
然后您可以从该位置读取一定数量的字节,或者写,什么的。它很棒的东西。 OS.File 是新的文件操作方式,也是推荐的方式。它已经存在了一段时间了,就像 Firefox 29 或更早版本一样。