【问题标题】:http based filesystem with seek and lock support基于 http 的文件系统,支持查找和锁定
【发布时间】:2009-04-21 19:58:39
【问题描述】:

我正在构建一个需要使用 Web 服务器(如文件系统)的应用程序。具体来说,理想的解决方案是:

  • 允许通过 HTTP 打开(锁定)、读取、写入、查找和截断一个文件的服务器端组件。我需要能够同时锁定多个文件。我需要它在任何标准 Web 主机上运行,​​因此它必须在 IIS 或 Apache 之上运行,使用服务器端脚本(Web 服务、PHP 等)
  • 我给它一个 URI 的客户端接口,它打开并像文件一样工作。我的客户端应用在 .NET 中,因此理想情况下客户端 API 将实现 FileSteam 子类。

我需要这个的原因是我有相当大的文件将放在网络主机上。我需要读取部分文件(使用搜索)、截断并附加到末尾。下载和上传整个文件太占用带宽。另外,我需要同时锁定多个文件。

我的问题:

  • 这样的事情存在吗?
  • 如果不是,为什么不呢?这似乎不是一项非常有用的服务?

似乎这样的组件可以让我使用任何网络托管公司作为网络文件服务器。这看起来很有用,不是吗?

感谢您的帮助!

埃里克

【问题讨论】:

    标签: .net http filesystems locking seek


    【解决方案1】:

    看来您正在寻找的是WebDAV 服务器。

    【讨论】:

    • 该链接没有解决搜索要求;这可能是可能的,但看起来编辑模型是下载/本地编辑/覆盖安排,并且除此之外特别要求 OP
    • 它似乎确实在寻求阅读:webdav.org/mod_dav/faq/#01-02 但这并没有说明写作,所以谁知道
    【解决方案2】:

    加长版
    Web 主机最初设计用于将内容发送给单独连接的用户。会话的整个概念是一种相对现代的现象(关键词:相对)——其中大部分只是跟踪来自同一用户的单个连接的简单方法。通常情况下,它只是给人印象您仍然连接到服务器,而实际上您已经连接、下载、断开连接 - 并且每次都执行相同的连接/下载/断开连接你采取行动。

    WebDav 之类的东西是标准 HTTP 对话框的附加功能,允许专门设计的软件通过 HTTP 与服务器进行更复杂的通信。 WebDav 非常常见的用途是 Subversion、iCal(日历支持)等 - 这些允许单一连接上传数据。

    您所说的是拥有基于会话的文件系统服务。虽然这似乎是一项很好的服务,但我怀疑它尚未实施,因为其复杂性和危险超过了好处。例如,这样的服务不仅需要担心标准文件系统问题(授权、文件权限、锁定、超时等),而且现在还必须担心在 Web 上的复杂性(身份验证、会话跟踪、断开连接、重放攻击、DDoS 等)。例如,如果客户端锁定文件然后离线会发生什么?文件是否保持锁定直到服务器重新启动?如果没有,你什么时候自动解锁文件?如果自动解锁触发并且原来的储物柜重新上线会发生什么?您是否强制所有事情都在一个连接中完成以进行补偿?如果他们在会话中间断开连接会发生什么?

    它们只是您需要担心的几件事。我闲逛的时间比我打算的要长得多,但最重要的是......

    短版
    您当然可以使用 WebDav 来实现这一点,这将需要您构建一个服务器端库。然而,虽然这并非不可能,但你正处于一个设计的伤害世界。我建议简化它的设计,这样你就不需要它像文件系统那样工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      相关资源
      最近更新 更多