2013-07-18 150 views
0

我使用/ delta功能來查找Dropbox帳戶中是否有任何更改。Dropbox:/ delta和共享文件夾

當我第一次運行它(直到'has_more'變成False)時,它很好。但是當我再次運行它(使用上一次調用的光標)時,它會顯示一個文件列表。我再次運行它(不更改任何文件),並且我仍然得到相同的文件列表(儘管它們沒有更改)。我覺得這些文件都在共享文件夾中。 我再次使用該文件夾中的一組新文件進行測試,得到的結果相同 - 這些文件顯示在增量項中,儘管它們未被更改。

怎麼了?

我覺得這是個bug。任何方式來解決它?

編輯: 下面的代碼

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 
+0

你可以添加你的代碼嗎? – User

+0

我們確實需要查看代碼才能提供幫助。總的來說,我從來沒有見過你描述的行爲。 – smarx

+0

你是否在每次通話中改變光標?您所描述的行爲聽起來像您可能正在使用舊光標,而不是使用每次/ delta調用後返回的光標更新光標。 – atwyman

回答

2

它看起來像你的代碼是使用self.cursor = delta['cursor']時,應該使用self.cursor = delt['cursor']它。