我目前正在使用 dropbox c# API 开发应用程序。
DropBox 能够几乎立即捕获其服务器上的更改以及客户端中的更改。
他们使用什么技术来同步这 2 个副本?
希望有人能给我一些开始的线索,我尽量避免定时器基同步。
谢谢。
我目前正在使用 dropbox c# API 开发应用程序。
DropBox 能够几乎立即捕获其服务器上的更改以及客户端中的更改。
他们使用什么技术来同步这 2 个副本?
希望有人能给我一些开始的线索,我尽量避免定时器基同步。
谢谢。
我不知道他们用什么。但是您可以使用 c# 中的 filesystemwatcher。这将允许您捕获文件更改事件。这不是最容易使用的东西,但使用起来很简单。
为了确保文件的旧版本不会覆盖新版本,我猜他们使用了版本计数器,这通常是这种情况。
为了确定文件是否从当前存储的文件中更改,我想他们可能会使用一些检查
if (local[file.name].size != server[file.name].size)
{
file.changed = true;
}
else if (local[file.name].md5 != server[file.name].md5)
{
file.changed = true;
}
else
{
file.changed = false;
}
对于客户端更改,他们可能会使用文件系统观察程序。如果 Dropbox 文件夹发生变化,它们会触发 API 更新 Dropbox 服务器。
我不确定服务器端的更改,但是应该有一些计时器机制来轮询服务器以查看更改..
对于服务器端更改,您必须在 V2 api 中请求“list_folder_continue”。它将返回所做更改的列表。使用此链接对其进行测试。