同步服务,如Dropbox,文件索引背后的理论?

时间:2011-02-10 09:20:14

标签: c# amazon-s3 theory sync

我已经意识到通过直接使用Amazon S3服务,我可以节省很多钱。而不是购买像GoodSync或Jungle Disk这样的客户端,我认为创建自己的Windows同步应用程序会很有趣,它会将我的文件同步到S3。

我发现我可以使用FileSystemWatcher来监控文件和目录的更改,但我正在寻找其他服务如Dropbox索引文件的理论。比较文件的文件大小与客户端PC上某处索引中记录的大小,然后使用此信息确定是否同步。

我正在使用C#并且对我可以使用的不同库或代码示例的引用会有所帮助,但我主要是寻找索引文件的最佳方法,并且有人指出我正确的方向。

由于

1 个答案:

答案 0 :(得分:1)

我自己走了这条路。事实上,现在Mozy放弃了他们的无限计划,而且Carbonite选择不备份某些文件......比如3GP文件和* .dat文件,除非你经常进入并手动添加它们,我对在线备份非常不满。

但你的问题是关于同步。 Dropbox做得最好。但它很贵。但我不确定S3会更便宜。

无论如何,你会遇到很多障碍。根据我的经验,我遇到的问题是:

1)传播删除

2)FileSystemWatcher只是丢失了一些事件,比如将文件快速添加到文件夹然后删除它们

3)等。

现在关于 I 将如何解决这个问题的一些想法:

1)在本地为文件名/路径保留一个小的SQLite数据库 2)在发送到S3之前将文件复制到tmp目录。 3)在文件更改/更新/删除/ etc中存储SQLite中的元信息

无论如何只是一些想法。