我正在编写一个允许用户上传和存储文件的Web应用程序;但是我想根据文件名为他们上传的文件添加一个简单的版本历史记录功能。
我是否可以为版本历史记录部分集成现有的框架/模块,还是我自己更好地编写它?我觉得可能有很多管道已经在框架中完成了。我找不到任何和我的大部分谷歌搜索都发现了实际的项目版本控制软件。
我正在使用.NET和C#来制作这个Web应用程序。
答案 0 :(得分:0)
我不知道我头脑中的任何图书馆,但无论如何,这可能是我自己卷起来的。解决方案很简单。获取文件字节的SHA-1(或其他适当的)哈希值,并将其用作备份存储库中该文件版本的文件名/主键。这被称为“内容可寻址的”,是git所做的简化版本。
这样做的一个可能的好处是,如果2个用户上传相同版本的文件,则只需存储一次。
然后你只需要一个列表来跟踪哪个哈希值按给定用户文件名的顺序排列。
修改强>
值得注意的是,如果您不处理blob,而是处理结构化数据或应用程序对象,您可能会通过SQL触发器或RavenDB版本控制包从数据存储中获取大部分此功能。
答案 1 :(得分:0)
我会使用像Subversion这样的版本控制系统。这将是非常可靠,易于集成,它将提供历史(具有很好的细节)和下载任何过去版本的能力。额外:你甚至可以区分两个版本(显然这只适用于基于文本的文件类型)。