0

/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
4

1 に答える 1

2

self.cursor = delta['cursor']を使用する必要があるときに、コードが を使用しているようself.cursor = delt['cursor']です。

于 2013-07-19T23:16:50.480 に答える