Google Drive SDK Push-Benachrichtigungen - Änderungen an allen Dateien beobachten?

8

Der kürzlich gestartete Push-Benachrichtigungs-Service ist sehr cool und stellt eine große Verbesserung gegenüber dem zuvor erforderlichen Abruf dar.

Ich frage mich jedoch, wie Sie die Überwachung aller Dateien im freigegebenen Ordner auf Google Drive aktivieren können. Wir arbeiten am Drive-Überwachungstool, das eine Liste aller Änderungen enthält und Berichte für Drive-Ordner im gesamten Unternehmen ermöglicht.

Ich bin mir bewusst, dass ich die Benachrichtigungen über neue Objekte im Änderungs-Feed verwenden kann. Leider können Sie das was geändert wurde nicht von der Ressource Changes erkennen.

Beim Ansehen von Dateiressourcen können Sie Benachrichtigungen erhalten, die sagen, was an der Datei geändert wurde (Eltern, Berechtigungen, Metadaten usw.). Das ist großartig, aber anscheinend ist es nicht möglich, den Push Notification-Handler für alle Dateien in Google Drive zu registrieren. Die Dokumentation besagt, dass Sie immer fileId angeben müssen. Das würde bedeuten, in unserem Szenario Beobachtungsanfragen für Millionen von Dateien zu stellen (nicht zu erwähnen, dass die Push-API-Kanäle hin und wieder erneuert werden).

Kennen Sie einen geeigneteren Weg als die Verwendung von Änderungsbenachrichtigungen und erkennen Sie, was manuell geändert wurde (was ziemlich viele API-Aufrufe erfordert und eher langsam ist).

    
xaralis 09.08.2013, 09:55
quelle

1 Antwort

8

Lange Rede kurzer Sinn, nein.

Push Notification unterstützt nur das Ansehen von Dateien und Änderungen. Wie Sie vielleicht wissen, sind die Ordner in Google Drive eine Datei mit einem speziellen MimeType. Das heißt, Sie können einen bestimmten Ordner überwachen, indem Sie die Anforderung "Files.Watch ()" in einen Ordner stellen. Es wird Ihnen jedoch nur Änderungen in seinen direkten Kindern mitteilen, nicht rekursiv, was wahrscheinlich nicht das ist, was Sie wollten.

Der beste Ansatz besteht darin, die Metadaten aller Dateien in Ihre Anwendung zu kopieren und bei Änderungen zu vergleichen. Ich weiß, das ist nicht sehr effizient, aber für den Moment ist dies der einzige Weg, um dieses Ziel zu erreichen.

Und wenn Sie mich fragen, ob die gewünschte Funktion erstellt werden soll, ist das unwahrscheinlich. Push-Benachrichtigungen sind nicht nur für Drive API. Es ist für alle Google APIs konzipiert, die auf einer beliebigen API-Ressource ansehen und deren Änderungen erkennen können. Wenn Sie die Anforderung Files.Watch () ausführen, behält sie die Kopie des Ergebnisses von Files.get () und informiert Sie, wenn sich etwas geändert hat. Das ist der Grund, warum Files.watch viel mehr nützliche Details hat. Bei Änderungen wird es angezeigt, wenn Änderungen in Change.list () vorgenommen wurden. Daher kann es Ihnen nichts Besseres sagen als das, was die Ressource "Changes" derzeit tun kann. Ich glaube nicht, dass die von Ihnen gewünschte Funktion zur Drive API hinzugefügt wird.

    
JunYoung Gwak 09.08.2013, 16:13
quelle