适用于 .NET Web 应用的简单文件版本控制模块



我正在编写一个允许用户上传和存储文件的 Web 应用程序;但是我想根据文件名为他们上传的文件添加一个简单的版本历史记录功能。

是否有一个现有的框架/模块可以集成到版本历史部分,还是我自己编写它更好?我觉得可能已经有很多管道已经在框架中完成。我找不到任何东西,我的大多数谷歌搜索都找到了实际的项目版本控制软件。

我正在考虑使用 .NET 和 C# 来制作这个 Web 应用程序。

我不知道

我脑海中有任何库,但无论如何我可能会自己滚动。解决方案很简单。获取文件字节的 SHA-1(或其他适当的)哈希,并将其用作该版本文件的后备存储中的文件名/主键。这被称为"内容可寻址",是 git 所做工作的简化版本。

这样做的一个可能的好处是,如果 2 个用户上传文件的相同版本,您只需存储一次。

然后,您只需要在某处添加一个列表,用于跟踪给定用户文件名的哈希值的顺序。

编辑:

还值得注意的是,如果不处理 Blob,而是处理结构化数据或应用对象,则可能会通过 SQL 触发器或 RavenDB 版本控制包等方式从数据存储中获取大部分此功能。

我会使用版本控制系统,比如Subversion。这将非常可靠,易于集成,它将提供历史记录(具有丰富的详细信息)和下载任何过去版本的能力。奖励:您甚至可以比较两个版本(显然这仅适用于基于文本的文件类型)。

最新更新