Web 应用程序如何同步客户端 PC 上的文本文件文件夹?
Posted
技术标签:
【中文标题】Web 应用程序如何同步客户端 PC 上的文本文件文件夹?【英文标题】:How can a web application synch a folder of text files on the client's PC? 【发布时间】:2010-11-09 13:13:30 【问题描述】:我希望能够通过我的 Web 应用程序实时同步用户 PC 上的多个文本文件。基本上我想要本地 PC 上的一些数据文件来反映我的 Web 应用程序中用户数据的状态,所以如果 Web 应用程序或用户的 Internet 连接丢失,他可以使用这些数据文件来获取一些关键信息(可能使用 html /javascript 代码与将在这些数据文件上以脱机模式运行的文件一起存储。)
我知道 google gears 有很多有趣的工具用于处理离线状态,但我更喜欢 html/javascript 中更简单的应用程序,它不会像 google gears 那样依赖。我宁愿使用 google gears 来创建这些文件,然后慢慢地让它们全天与 Web 应用程序的数据版本保持同步。
答案更新: PersistJS 是一个很好的建议,我会考虑,但我希望人们能将我引向真正优秀的 Google Gears 教程资源。
【问题讨论】:
【参考方案1】:您可以使用PersistJS在浏览器上保存数据,它使用了它可以找到的最好的客户端持久存储机制,支持:
闪光 谷歌齿轮 HTML 5 存储规范 特定于浏览器的扩展 cookies当您的应用重新连接时,您可以重新同步。创建和读取文本文件是浏览器通常会阻止您的网站执行的操作。
【讨论】:
【参考方案2】:陈述显而易见的风险;如果您想在本地存储用户状态,cookie 不是标准方式吗? 可能需要不止一个 cookie,但这听起来是最简单的方法。
【讨论】:
【参考方案3】:您将需要制作一个 ActiveX 控件和一个 FireFox 插件来获得这些权限。除此之外,我同意 orip 尝试使用PersistJS
【讨论】:
【参考方案4】:您可以要求用户下载预定义为仅与您的 subversion 服务器交互的 subversion 客户端。然后编写您的 Web 应用程序以仅与您这边的颠覆服务交互。
授予对用户文件系统的访问权限会带来很多安全危害,因此您需要锁定所有可能的利用点。您需要确保用户无法访问颠覆服务器,除非通过您要求他们安装的客户端。您需要确保应用服务器和 subversion 服务器之间的连接非常安全,这样传输路径就不会受到破坏,并且可能加载到应用服务器上的恶意逻辑无法访问 subversion 服务器。我会说加密这两个服务器之间的传输路径,并将颠覆服务器放在隔离您的网络 DMZ 的防火墙后面。我还建议在应用服务器和颠覆服务器之间使用质询/响应机制,以防止恶意代码看起来是在应用服务器上做出的合法决策。此外,请确保数据仅以单向方式从应用程序服务器流向颠覆服务器,因为如果在您的应用程序服务器上植入了恶意逻辑,那么来自颠覆服务器的任何数据都会受到损害,甚至无需访问该服务器。
【讨论】:
【参考方案5】:您可以通过 javascript 使用文件系统对象 FSO,但它依赖于 Microsoft,因为它是一个 ActiveX 控件,它还需要浏览器中的权限,或者可能是 HTA(HTML 应用程序)。
http://www.webreference.com/js/column71/
这是一个真正的安全问题,因此大多数途径都因赫伦特利而关闭。
【讨论】:
【参考方案6】:从本质上讲,Web 模型的设计目的是不对从服务器到客户端的上游进行授权。现在事情正在慢慢发生变化,也许你可以用 Websocket 做到这一点?
【讨论】:
以上是关于Web 应用程序如何同步客户端 PC 上的文本文件文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 PC 桌面邮件客户端同步到 Exchange Activesync 服务器?
从 Windows 10 客户端上的大文件下载 TFS 2018 Web 访问不再可能