Javascript 在浏览器的本地存储中存储对磁盘上文件的引用

Javascript 在浏览器的本地存储中存储对磁盘上文件的引用,javascript,local-storage,Javascript,Local Storage,在当前的文件API中,访问先前添加的文件的唯一方法是将整个文件对象存储在本地存储中。当添加多个文件时,这会很快消耗浏览器的内存 我想知道是否有一种方法可以只在本地存储中存储对该文件的某种类型的引用,并且能够使用其引用访问该文件 我尝试使用URL.createObjectURL函数为文件生成URL,但该URL与文档绑定,并在重新加载页面时过期。是否存在替代方案?通过快速消耗浏览器的内存,我假设您的意思是,本地存储配额正在被存储在那里的文件耗尽。本地存储配额用于防止网站占用过多的用户本地磁盘空间。默

在当前的文件API中,访问先前添加的文件的唯一方法是将整个文件对象存储在本地存储中。当添加多个文件时,这会很快消耗浏览器的内存

我想知道是否有一种方法可以只在本地存储中存储对该文件的某种类型的引用,并且能够使用其引用访问该文件


我尝试使用URL.createObjectURL函数为文件生成URL,但该URL与文档绑定,并在重新加载页面时过期。是否存在替代方案?

通过快速消耗浏览器的内存,我假设您的意思是,本地存储配额正在被存储在那里的文件耗尽。本地存储配额用于防止网站占用过多的用户本地磁盘空间。默认情况下,大多数浏览器将每个域的存储限制为5MB

,本地存储配额实际上是一项功能,用于防止您的请求发生,即网站在用户磁盘上存储的文件超过用户允许的配额:

用户代理应该限制存储区域允许的总空间量,因为恶意作者可能会使用此功能耗尽用户的可用磁盘空间

用户代理应防止在其来源地的其他附属网站下存储数据的网站,例如,在a1.example.com、a2.example.com、a3.example.com等网站中存储数据达到限制,从而绕过主要example.com的存储限制

当达到配额时,用户代理可能会提示用户,允许用户授予站点更多空间。例如,这使站点能够在用户的计算机上存储许多用户创建的文档


通过快速消耗浏览器的内存,我假设您的意思是本地存储配额正在被存储在那里的文件消耗殆尽。本地存储配额用于防止网站占用过多的用户本地磁盘空间。默认情况下,大多数浏览器将每个域的存储限制为5MB

,本地存储配额实际上是一项功能,用于防止您的请求发生,即网站在用户磁盘上存储的文件超过用户允许的配额:

用户代理应该限制存储区域允许的总空间量,因为恶意作者可能会使用此功能耗尽用户的可用磁盘空间

用户代理应防止在其来源地的其他附属网站下存储数据的网站,例如,在a1.example.com、a2.example.com、a3.example.com等网站中存储数据达到限制,从而绕过主要example.com的存储限制

当达到配额时,用户代理可能会提示用户,允许用户授予站点更多空间。例如,这使站点能够在用户的计算机上存储许多用户创建的文档


我想相信这是不可能的,否则会导致安全风险,允许恶意网站永久访问本地文件路径,即使内容发生更改。@Amit至少在linux文件上有ctime,这是一个不可靠的属性,可用于确定文件是否以任何方式发生了更改。它可用于实现持久访问,但安全问题不比临时文件引用的安全问题少,因为浏览器可以轻松确定自应用程序首次获得对文件的引用后,该文件是否发生了任何更改。@tab1293问题似乎是在应用程序首次获得该文件引用后,对该功能的兴趣似乎不大几个小时的谷歌搜索我发现只有2-3个人需要它,请在这里@Esailija表达你的兴趣-即使这有一定道理,网络技术的目标是尽可能普及,因此这不是API的责任。一个实现可以选择将这种机制作为一种优化来实现,但我无法想象有人会优先考虑这样的功能。我认为这是不可能的,否则会导致安全风险,允许恶意网站永久访问本地文件路径,即使内容发生了变化。@Amit至少在linux文件上有ctime,这是一个不可取的属性,可用于确定文件是否以任何方式发生了变化。它可用于实现持久访问,但安全问题不比临时文件引用的安全问题少,因为浏览器可以轻松确定自应用程序首次获得对文件的引用后,该文件是否发生了任何更改。@tab1293问题似乎是在应用程序首次获得该文件引用后,对该功能的兴趣似乎不大几个小时的谷歌搜索我发现只有2-3个人需要它,请在这里@Esailija表达你的兴趣-即使这有一定道理,网络技术的目标是尽可能普及,因此这不是API的责任。一个实现可以选择实现这种机制作为一种优化,但我不能选择ima
gine任何优先考虑此类功能的人文件数据实际上不存储在本地存储中,而是存储在IndexedDB中,它可以利用高达50%的用户硬盘。我使用localfough在本地存储文件对象。但是,即使有了额外的空间,文件也会被复制,并占用用户磁盘上不可用的空间。文件数据实际上并不存储在本地存储中,而是存储在IndexedDB中,它可以利用高达50%的用户硬盘。我使用localfough在本地存储文件对象。但是,即使有额外的空间,文件也会被复制,并占用用户磁盘上不可用的空间。