【发布时间】:2013-07-18 11:23:44
【问题描述】:
我正在使用 /delta 功能来查找 Dropbox 帐户中是否有任何更改。
当我第一次运行它时(直到 'has_more' 变为 False),这很好。但是当我再次运行它时(使用上一次调用的光标),它会显示一个文件列表。我再次运行它(不更改任何文件),我仍然得到相同的文件列表(尽管它们没有更改)。我认为这些文件位于共享文件夹中。 我使用该文件夹中的一组新文件再次进行了测试,得到了相同的结果——这些文件显示在增量条目中,尽管它们没有被更改。
怎么了?
我觉得这是一个错误。有什么办法绕过它?
编辑: 这是代码
def getDeltaEntries(self): #this function is a method of a class
def _getDelta():
delta = self.client.delta(self.cursor)
entries = delta.get('entries')
has_more = delta.get('has_more')
self.cursor = delta['cursor']
while has_more:
delt = self.client.delta(self.cursor)
entries.extend(delta.get('entries'))
has_more = delt.get('has_more')
self.cursor = delta['cursor']
return entries
#workaround: query for delta twice and if the result is the same both times,
#it implies there's no change
ent1 = _getDelta()
ent2 = _getDelta()
if ent1 == ent2:
entries = []
else:
entries = ent1
return entries
【问题讨论】:
-
你能添加你的代码吗?
-
我们真的需要查看代码来提供帮助。总的来说,我从未见过你描述的行为。
-
您是否在每次通话时更改光标?您描述的行为听起来您可能正在使用旧游标,而不是使用每次 /delta 调用后返回的游标来更新游标。
-
已更新代码。
-
@atwyman 是的。我会在每次通话时更新它。 (见代码)
标签: python dropbox dropbox-api delta