【问题标题】:Dropbox: /delta and shared foldersDropbox:/delta 和共享文件夹
【发布时间】: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


【解决方案1】:

您的代码似乎在使用 self.cursor = delta['cursor'],而实际上应该使用 self.cursor = delt['cursor']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    相关资源
    最近更新 更多