2013-08-09 21 views
8

Kısa süre önce başlatılan Push Bildirimleri hizmeti çok havalı ve daha önce gerekli olan yoklama üzerinde büyük bir gelişme olarak görünüyor.Google Drive SDK Push Bildirimleri - tüm dosyalardaki değişiklikleri izleyin?

, Drive'daki paylaşılan klasördeki tüm dosyaların izlemesini nasıl yapacağımı merak ediyorum. Tüm değişikliklerin listesini tutan ve tüm kurumsal Drive klasörleri için raporlamayı sağlayan Drive izleme aracı üzerinde çalışıyoruz.

Değişiklikler feed'indeki yeni nesneler hakkındaki bildirimleri kullanabileceğimin farkındayım. Ne yazık ki, 'u, Changes kaynağından neyin değiştirdiğini tespit edemiyorsunuz.

Dosya kaynaklarını izlerken, dosya hakkında nelerin değiştiğini söyleyen bildirimler alabilirsiniz (ebeveynler, izinler, meta veriler vb.). Bu harika, ancak Drive'daki tüm dosyalar için Push Notification işleyicisini kaydetmek mümkün görünmüyor. Dokümanlar her zaman fileId sağlamanız gerektiğini söylüyor. Bu, senaryodaki milyonlarca dosya için izleme istekleri yapmak anlamına gelecektir (Push API kanallarının her birini şimdi ve sonra değiştirerek tekrar etmeyerek).

Değişiklik bildirimleri'u kullanmaktan ve el ile değiştirilenleri algılamaktan (oldukça fazla API çağrısı olduğundan ve oldukça yavaş) herhangi bir daha uygun bir yol biliyor musunuz?

cevap

8

Uzun hikaye kısa, hayır.

Şimdi Push Bildirimi yalnızca Dosya ve Değişiklikler'de izlemeyi desteklemektedir. Bildiğiniz gibi, Google Drive'daki klasörler özel mimeType ile Dosya'dır. Yani, bir klasöre Files.Watch() isteği yaparak belirli bir klasörde izleyebilirsiniz. Bununla birlikte, size sadece direk çocuklarda değil, yinelemeli olarak değil, muhtemelen sizin istediğin gibi olan değişiklikleri söyleyecektir.

Yapabileceğiniz en iyi yaklaşım, tüm dosya meta verilerinin kopyasını uygulamanıza almak ve herhangi bir değişiklik olduğunda karşılaştırmaktır. Bunun çok verimli olmadığını biliyorum, ama şimdilik bu hedefe ulaşabilmenin tek yolu bu.

Ve eğer istediğiniz özelliğin oluşturulmayacağını soruyorsanız, büyük olasılıkla değil. Push bildirimleri sadece Drive API'sı için değil. Tüm Google API’nın herhangi bir API kaynağında izlenmesi ve değişikliklerini tespit etmesi için tasarlanmıştır. Temel olarak, Files.Watch() isteğinde bulunduğunuzda, Files.get() sonucunun kopyasını tutar ve herhangi bir şey değiştiğinde bunu bildirir. Files.watch'un çok daha fazla ayrıntıya sahip olmasının nedeni budur. Değişiklikler için, Changes.list() öğesinde değişiklikler olduğunda size söyler. Böylece, size şu anda yapabileceğiniz değişikliklerden daha iyi bir şey söyleyemez. Tasarımından, istediğiniz özellik Drive API'sına ekleneceğini düşünmüyorum.

+0

Geri bildiriminiz için çok teşekkür ederiz. Yine de korktuğum şey bu. Nevermind, değişiklikleri kendimiz tespit etmeye devam edeceğiz. – xaralis

İlgili konular