【问题标题】:Dropbox and its "Folder" like designDropbox 及其类似“文件夹”的设计
【发布时间】:2012-11-30 07:13:28
【问题描述】:
【问题讨论】:
标签:
c#
java
ftp
directory
【解决方案1】:
特别是谈到 Dropbox,他们没有做任何棘手的事情 - 只是使用 Windows 用户模式 API 提供的机制监视一个常规文件夹。
不过,使用内核模式驱动程序可以做更强大、更有趣的事情。
您可以做的第一件事是创建一个虚拟磁盘并将其映射到文件夹。这样,您的代码(在我们产品的帮助下,无论是内核模式还是用户模式)都能够处理所有操作系统对该文件夹中文件的请求。该文件夹将不存在于磁盘上,但将是虚拟的。您可以即时从远程服务器中选择数据,将它们写入远程服务器等。特别是,您可以将远程 SFTP 服务器映射到文件夹(使用 FTP 时事情会稍微复杂一些,因为 FTP 不支持部分上传)。一些云提供商完全按照我的描述进行 - 他们提供虚拟磁盘或虚拟文件夹,这是他们云服务的“门”,当您从此类虚拟文件夹或磁盘读取或写入数据时,数据会从/到云服务器。
接下来是在文件系统过滤驱动程序的帮助下,您可以拥有一个真实的文件夹,但可以动态提供文件内容。这就是一些文件夹加密器的工作方式(它们在将文件数据写入真实磁盘时对其进行加密,如果没有激活此加密器,您将从该文件夹中的文件中读取刚刚加密的“垃圾”)。
现在,使用文件系统过滤器驱动程序,您可以控制访问文件夹的人员和方式,即您可以对文件夹内容的访问进行细粒度控制(将其与加密相结合,您可以获得方便的数据保护机制)。