【发布时间】:2013-10-10 05:14:09
【问题描述】:
我正在使用 webRTC 开发 FileShare 应用程序。我想用 JavaScript/HTML 实现客户端。该代码应在客户端浏览器上运行。 通过 webRTC 下载时我需要保存它们。这些文件可能非常大,在将它们作为文件保存到磁盘之前,我无法完全下载它们并将它们保存在数组或 blob 中。
是否有任何 API 可以让我在收到文件时将文件分块保存?
到目前为止,我已经找到了 Downloadify、FileSave.js 和 html5 FileWriterApi。 虽然前两个没有分块并且需要我在保存之前先将完整的文件下载到内存中,但 FileWriterAPI 在大多数浏览器上不可用。
【问题讨论】:
-
对于合理大小的文件,我的第一直觉是将每个块存储在自己的
Blob中,最后将它们全部连接到一个大Blob中(使用新的构造函数)并使用createObjectURL保存最终的Blob。 IIRC,JSBlobs 在必要时存储到磁盘,所以除非文件真的很大(或者我真的错了;)),它不应该太可怕? -
@JordanGray 可能是个好主意 - 我认为下载的块需要在浏览器会话之间持续下载,但如果不是,这可能是最干净的想法(如果浏览器确实实现了持久化blob 在需要时归档)。
标签: javascript html flash firefox webrtc