2013-04-29 133 views
3

一直在寻找一个最新的答案,但我在我的绳索结束:目前有一种方法来持久存储大量的二进制数据? (A Blob or or ArrayBuffer,> 100MB)HTML5 - 大Blob和持久本地存储

事情似乎正在向IndexedDB发展,作为通用解决方案,但目前并未持久化。唯一的其他合适的方法似乎是File System API,它在Chrome之外的支持不是很好。

有没有合理的解决方法呢?

回答

2

IndexedDB可以存储这些数据,这里有一篇关于storing images and files的文章。您首先遇到的问题是storage limits

大多数桌面浏览器将最终允许尽可能多的存储,但用户将被提示允许它发生。

+0

感谢您的信息。我已经在我的多次搜索中运行过这篇文章=)但是,IndexedDB,AFAIK还没有*还*提供持久存储 - 保证存储直到用户手动清除它。我已经运行了一些Chrome测试,并且在关闭窗口后数据确实持续存在,但从我所看到的情况来看,它尚未正式“持久”。 – Dan 2013-04-30 16:20:45

+0

它是持久的,这就是它的重点,而你的域存在数据将被浏览器与它关联。如果你去更改域名或用户卸载那里的浏览器(或通过不同的访问),那么你会遇到问题。 – 2013-04-30 22:57:24

+0

是的,你是对的!谢谢。不知道我以前没有找到这个:https://developer.mozilla.org/en-US/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB – Dan 2013-04-30 23:17:46

1

正如Slace建议的那样,IndexedDB将解决您的问题,但在Safari中尚不支持,但Chrome并不允许您在IndexedDB(尚)中存储Blob。

LargeLocalStorage项目弥合了这些差距,并为您提供IE,Chrome,Firefox,Safari和Opera中的大型持久存储。

LargeLocalStorage还使用Chrome下的FilesystemAPI,它实际上记录为持久性的。 Chrome仍将文件IndexedDB视为临时存储https://developers.google.com/chrome/whitepapers/storage#table