इस गाइड में, Drive API का इस्तेमाल करके, क्लाइंट-साइड एन्क्रिप्शन (सीएसई) वाली फ़ाइलों को एक साथ इंपोर्ट करने के लिए, कस्टम टूल बनाने के सबसे सही तरीकों के बारे में बताया गया है.
सेल्फ़-सर्विस माइग्रेशन के लिए, Drive for desktop का इस्तेमाल करना
कोई उपयोगकर्ता, Drive for desktop क्लाइंट का इस्तेमाल करके, अपने लोकल मशीन से फ़ाइलें इंपोर्ट कर सकता है. यह क्लाइंट-साइड एन्क्रिप्शन को पूरी तरह से सपोर्ट करता है. साथ ही, उपयोगकर्ताओं को अपनी फ़ाइलें एन्क्रिप्ट (सुरक्षित) करके अपलोड करने की अनुमति देता है. इस गाइड में बताए गए तरीके से कस्टम टूल बनाना, सिर्फ़ बड़े पैमाने पर, बिना किसी की मदद के, या डिवाइस के एक से ज़्यादा उपयोगकर्ताओं के लिए एक साथ कई फ़ाइलें इंपोर्ट करने के लिए ज़रूरी है.
शुरू करने से पहले
आपको यह समझना होगा कि क्लाइंट-साइड एन्क्रिप्शन वाली किसी फ़ाइल को कैसे मैनेज किया जाता है. एन्क्रिप्शन, अपलोड/डाउनलोड, और डिक्रिप्शन के बुनियादी चरणों के बारे में जानने के लिए, क्लाइंट-साइड एन्क्रिप्शन वाली अलग-अलग फ़ाइलें मैनेज करना लेख पढ़ें. इसमें टोकन जनरेट करने और कुंजी ऐक्सेस कंट्रोल लिस्ट सर्विस (केएसीएलएस) के साथ इंटरैक्ट करने के बारे में भी बताया गया है.
सेवा खाते का इस्तेमाल करके पुष्टि करना
Drive API के साथ इंटरैक्ट करते समय, डोमेन-वाइड डेलिगेशन वाले सेवा खाते** का इस्तेमाल करें. इससे आपका ऐप्लिकेशन, उपयोगकर्ताओं के तौर पर काम कर सकता है. इसलिए, आपके पास प्रोग्राम के ज़रिए, उन सभी उपयोगकर्ताओं के लिए एक साथ फ़ाइलें अपलोड करने का विकल्प होता है.
डायरेक्ट्री स्ट्रक्चर को फिर से बनाना
अपने इंपोर्ट टूल को इस तरह डिज़ाइन करें कि वह सोर्स फ़ाइलों और फ़ोल्डर को बार-बार ट्रैवर्स करे, ताकि मौजूदा डायरेक्ट्री स्ट्रक्चर को Drive पर कॉपी किया जा सके. इसकी प्रोसेस यहां दी गई है:
- हर सोर्स डायरेक्ट्री के लिए, उससे जुड़ा Drive फ़ोल्डर बनाएं.
- डायरेक्ट्री की फ़ाइलों को एन्क्रिप्ट (सुरक्षित) करें और उन्हें बनाए गए Drive फ़ोल्डर में अपलोड करें.
- सबडायरेक्ट्री के लिए भी यही प्रोसेस दोहराएं.
सही जगह पर फ़ाइलें अपलोड करना
फ़ाइलें हमेशा सही उपयोगकर्ता की 'मेरी ड्राइव' या ऐक्सेस की जा सकने वाली शेयर की गई ड्राइव पर अपलोड करें. शेयर की गई ड्राइव या फ़ोल्डर का आईडी ढूंढने के लिए, Drive के वेब यूआरएल से स्टैटिक तरीके से या drives.list और files.list तरीकों का इस्तेमाल करके डाइनैमिक तरीके से ढूंढें.
डुप्लीकेट फ़ाइलें अपलोड होने से रोकना
Drive में, एक ही फ़ोल्डर में मौजूद कई फ़ाइलों के नाम एक जैसे हो सकते हैं. फ़ाइलें अपलोड करने से पहले, उनके लिए आईडी जनरेट करें. इसके लिए, Drive API के files.generateIds तरीके का इस्तेमाल किया जा सकता है.
पहले से जनरेट किए गए इन आईडी को सेव करके, आपका इंपोर्टर हर फ़ाइल को उसके खास आईडी पर अपलोड करने की कोशिश कर सकता है. अगर उस आईडी वाली कोई फ़ाइल पहले से मौजूद है, तो आपका टूल उसे सुरक्षित तरीके से छोड़ सकता है. पहले से जनरेट किए गए आईडी का इस्तेमाल करने से, आपका टूल क्रैश होने के बाद भी काम कर पाएगा.
हर अपलोड से पहले, क्लाइंट-साइड एन्क्रिप्शन (सीएसई) टोकन का अनुरोध करना
कुंजी रैप करने और फ़ाइल अपलोड करने से ठीक पहले, हर फ़ाइल के लिए generateCseToken को कॉल करें. इस तरीके से, यह पक्का किया जाता है कि टोकन में, उससे जुड़े मेटाडेटा की मौजूदा स्थिति की सटीक जानकारी दिखे. यह जानकारी बदल सकती है.
बड़ी फ़ाइलों के लिए, अपलोड फिर से शुरू करने की सुविधा का इस्तेमाल करना
बड़ी फ़ाइलें माइग्रेट करने के लिए, Drive API की अपलोड फिर से शुरू करने की सुविधा का इस्तेमाल करें. अपलोड फिर से शुरू करने की सुविधा से, आपका इंपोर्टर नेटवर्क में रुकावट आने पर, अपलोड न हो पाए चंक को फिर से अपलोड कर सकता है. इसके लिए, उसे पूरी फ़ाइल को फिर से अपलोड करने की ज़रूरत नहीं होती.
शेयर करने की अनुमतियां वापस लाना
अगर आपके एक साथ कई फ़ाइलें इंपोर्ट करने वाले टूल को शेयर करने की अनुमतियां सेव करनी हैं, तो पहले फ़ाइल को एन्क्रिप्ट (सुरक्षित) करके अपलोड करें. इसके बाद, permissions.create तरीके को कॉल करें.
फ़ाइल अपलोड करते समय, शेयर करने की अनुमतियां लागू नहीं की जाती हैं.
टोकन की समयसीमा खत्म होने की समस्या को हल करना
लंबे समय तक चलने वाले ऑपरेशन के लिए, आपकी स्क्रिप्ट को टोकन की समयसीमा खत्म होने की वजह से, पुष्टि से जुड़ी गड़बड़ियां मिल सकती हैं. ऐक्सेस टोकन को अपने-आप रीफ़्रेश करने और अपलोड को फिर से करने के लिए, लॉजिक लागू करें. ज़्यादा जानकारी के लिए, ओपन सोर्स का वह उदाहरण देखें जिसमें एक फ़ाइल को एन्क्रिप्ट (सुरक्षित) करके अपलोड करने का तरीका बताया गया है.
इंपोर्ट की गई फ़ाइलों की अच्छी तरह पुष्टि करना
एक साथ कई फ़ाइलें इंपोर्ट करने के बाद, उनकी अच्छी तरह पुष्टि करें. Google, आपके सर्वर पर मौजूद फ़ाइलों को डिक्रिप्ट करके उनकी पुष्टि नहीं कर सकता. इंपोर्ट की गई फ़ाइलों की पुष्टि करना सेक्शन में, अलग-अलग फ़ाइलों की पुष्टि करने के कई तरीकों के बारे में बताया गया है.
बड़े पैमाने पर पुष्टि करने का एक और तरीका है. यह तरीका, एक साथ कई फ़ाइलें इंपोर्ट करने के बाद खास तौर पर काम आता है. इसके लिए, आधिकारिक डिक्रिप्टर टूल का इस्तेमाल किया जाता है. सबसे पहले, Google Takeout का इस्तेमाल करके, Drive से एन्क्रिप्ट (सुरक्षित) किया गया कॉन्टेंट डाउनलोड करें. इसके बाद, डिक्रिप्टर टूल का इस्तेमाल करके, कॉन्टेंट को डिक्रिप्ट करने की कोशिश करें. इस प्रोसेस से, उन फ़ाइलों की पहचान करने में मदद मिलती है जिन्हें डिक्रिप्ट नहीं किया जा सकता. इससे, आपके इंपोर्ट टूल के एन्क्रिप्शन या कुंजी रैप करने के लॉजिक में संभावित समस्याओं का पता चलता है.
सीमाओं और कोटा के बारे में जानकारी
क्लाइंट-साइड एन्क्रिप्शन वाली फ़ाइलों पर, Drive की सामान्य सीमाएं और कोटा लागू होते हैं. शेयर की गई ड्राइव की सीमाओं, सामान्य फ़ाइल और फ़ोल्डर की सीमाओं, और अपने कोटा को मैनेज करने के तरीके के बारे में जानें. इसके अलावा, आपके इंपोर्ट टूल को कुंजी ऐक्सेस कंट्रोल लिस्ट सर्विस (केएसीएलएस) और आइडेंटिटी प्रोवाइडर (आईडीपी) की दर की सीमाओं को भी मैनेज करना होगा.