我正在构建一个需要像文件系统一样使用Web服务器的应用程序。具体而言,理想的解决方案是:
我需要这个的原因是我有相当大的文件将放在网络主机上。我需要阅读部分文件(使用搜索),截断并追加到最后。下载和上传整个文件的带宽太多。另外,我需要同时锁定多个文件。
我的问题:
似乎这样的组件允许我使用任何网络托管公司作为网络文件服务器。这看起来很有用,不是吗?
感谢您的帮助!
埃里克
答案 0 :(得分:1)
您正在寻找的是WebDAV服务器。
答案 1 :(得分:1)
长版
Web主机最初设计为在单独连接中向用户发送内容。会话的整个概念是一种相对现代的现象(关键词:相对) - 其中大多数只是跟踪来自同一用户的各个连接的方法。通常情况下,它只是给你印象你仍然连接到服务器,实际上你已连接,下载,断开连接 - 并且每次都进行相同的连接/下载/断开连接你采取行动。
WebDav之类的东西是标准HTTP对话框的附加功能,允许特殊设计的软件通过HTTP与服务器进行更复杂的通信。 WebDav的常见用途是Subversion,iCal(日历支持)等 - 这些允许单一连接上传数据。
您所说的是拥有基于会话的文件系统服务。虽然这似乎是一项很好的服务,但我怀疑它没有实施,因为它的复杂性和危险性超过了它的好处。例如,这样的服务不仅要担心标准的文件系统问题(授权,文件权限,锁定,超时等),而且现在还要担心在网络上的复杂性(身份验证,会话跟踪,断开连接,重放攻击,DDoS等)。例如,如果客户端锁定文件然后脱机会发生什么?在服务器重新启动之前,文件是否保持锁定状态?如果没有,你什么时候自动解锁文件?如果自动解锁触发器和原始锁定器重新联机会发生什么?您是否强制要在一个连接中完成所有操作以进行补偿?如果他们在会话中断了会发生什么?
它们只是你需要担心的一些事情。我的漫步时间比我的意思要长,但最重要的是......
短版
您当然可以使用WebDav来实现它,这将需要您构建服务器端库。然而,虽然它并非不可能,但你正处于一个受到设计伤害的世界。我建议简化设计,这样你就不需要它像文件系统一样。