2013-08-09 10 views
8

हाल ही में लॉन्च पुश अधिसूचना सेवा बहुत अच्छी है और पहले से आवश्यक मतदान पर एक बड़ा सुधार दिखता है।Google ड्राइव एसडीके पुश नोटिफिकेशन - सभी फाइलों पर बदलाव देखें?

मुझे आश्चर्य है कि ड्राइव पर साझा फ़ोल्डर में सभी फ़ाइलों को देखने के तरीके को कैसे सक्षम किया जाए। हम ड्राइव निगरानी उपकरण पर काम कर रहे हैं, जो सभी परिवर्तनों की सूची रखता है और पूरे एंटरप्राइज़ ड्राइव फ़ोल्डर्स के लिए रिपोर्टिंग को सक्षम बनाता है।

मुझे पता है कि मैं परिवर्तन फ़ीड में नई वस्तुओं के बारे में अधिसूचनाओं का उपयोग कर सकता हूं। दुर्भाग्यवश, आप का पता लगाने में सक्षम नहीं हैं जो परिवर्तन संसाधन से बदल गया है।

फ़ाइल संसाधनों को देखते समय, आप नोटिफिकेशन प्राप्त कर सकते हैं जो कहता है कि फ़ाइल (माता-पिता, अनुमतियां, मेटाडेटा इत्यादि) के बारे में क्या बदला गया है। यह बहुत अच्छा है, हालांकि ऐसा लगता है कि ड्राइव में सभी फ़ाइलों के लिए पुश अधिसूचना हैंडलर पंजीकृत करना संभव नहीं है। दस्तावेज़ कहते हैं कि आपको हमेशा fileId प्रदान करने की आवश्यकता होती है। इसका मतलब हमारे परिदृश्य में लाखों फाइलों के लिए घड़ी अनुरोध करना होगा (पुश एपीआई चैनलों को नवीनीकृत करने का उल्लेख नहीं करना चाहिए)।

परिवर्तन सूचनाएं का उपयोग करने से आप किसी भी अधिक उपयुक्त तरीका है पता है और पता लगाने के क्या मैन्युअल रूप से बदल दिया गया है (जो काफी API कॉल का एक बहुत और नहीं बल्कि ऐसा करने के लिए धीमी गति से होता है)।

उत्तर

8

लंबी कहानी छोटी, नहीं।

अब पुश अधिसूचना केवल फाइलों और परिवर्तनों पर देखने का समर्थन करता है। जैसा कि आप जानते हैं, Google ड्राइव में फ़ोल्डर विशेष माइम टाइप के साथ फ़ाइल है। यही है, आप फ़ाइलों को Files.Watch() अनुरोध करके एक विशिष्ट फ़ोल्डर पर देख सकते हैं। हालांकि, यह केवल आपको अपने प्रत्यक्ष बच्चों में बदलाव बताएगा, न कि पुनरावर्ती रूप से, जो शायद आप नहीं चाहते थे।

आपके द्वारा किए जा सकने वाले सबसे अच्छे दृष्टिकोण को आपके आवेदन में सभी फ़ाइल के मेटाडेटा की प्रतिलिपि बनाना और किसी भी बदलाव के दौरान इसकी तुलना करना है। मुझे पता है कि यह बहुत कुशल नहीं है, लेकिन अभी के लिए, यह एकमात्र तरीका है जिससे आप इस लक्ष्य को प्राप्त कर सकते हैं।

और यदि आप मुझसे पूछें कि क्या आप चाहते हैं कि सुविधा बनाई जाएगी, संभावना नहीं है। पुश नोटिफिकेशन न केवल ड्राइव एपीआई के लिए है। यह किसी भी एपीआई संसाधन को देखने और उनके परिवर्तनों का पता लगाने के लिए सभी Google एपीआई के लिए डिज़ाइन किया गया है। असल में, जब आप Files.Watch() अनुरोध करते हैं, तो यह Files.get() के परिणाम की प्रतिलिपि रखता है और कुछ भी बदले जाने पर आपको बताता है। यही वजह है कि Files.watch में बहुत अधिक उपयोगी विवरण हैं। परिवर्तनों के लिए, यह आपको बताता है कि जब भी Changes.list() में कोई परिवर्तन होता है। इस प्रकार, यह परिवर्तन संसाधन वर्तमान में क्या कर सकता है उससे बेहतर कुछ नहीं बता सकता है। अपने डिज़ाइन से, मुझे नहीं लगता कि आप जिस फीचर को चाहते हैं उसे ड्राइव एपीआई में जोड़ा जाएगा।

+0

प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। हालांकि मुझे डर है। कभी नहीं, हम खुद को बदलावों का पता लगाने के लिए चिपके रहेंगे। – xaralis

संबंधित मुद्दे