【问题标题】:Backup application with single instance functionality具有单实例功能的备份应用程序
【发布时间】:2009-12-09 08:12:36
【问题描述】:

目前正在开发一个应用程序,它可以帮助您在服务器(由公司自己托管)上备份您机器中的文件,以便您可以在任何硬盘崩溃后恢复数据。我已经在用户中实现了单实例功能。

单实例:已经上传到服务器的文件,不会再次上传。每当上传的确切文件的任何其他实例都不是实际上传,而是一些数据库更改并链接到相同的先前上传的文件时。

当多个用户同时上传同一个文件(之前尚未上传)时会出现问题, 不会检测到实例的启动文件(因为仅更新数据库成功上传/备份后)。所有人都在同时运行。以这种方式实现单个实例的最佳方法是什么。

我在想什么时候让所有实例按原样上传。因此,该文件的多个实例将驻留在服务器上。但是,每当以后对同一文件进行另一个备份时,我都会删除所有以前的实例并将它们与那个链接起来。这不会让用户重复上传,并且在一段时间内可能也会减少一些磁盘空间的成本(直到下一次上传相同的文件)

提前感谢您的想法。

【问题讨论】:

    标签: file-upload single-instance


    【解决方案1】:

    在上传之前计算文件的哈希(签名)并将其存储在数据库中。 然后 - 开始上传。 如果在第一个文件的上传过程中将标记类似的文件进行上传(您将知道 b/c 您已经保存了哈希) - 您将保留第二个文件上传,直到第一个文件成功完成,然后链接,如果第一次失败,你可以去第二个源上传。

    【讨论】:

    • 这里有条件..第一个文件可以无限期暂停,完全可以从备份中取消。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多