सीमित और ज़्यादा ऐक्सेस वाले फ़ोल्डर मैनेज करना

किसी उपयोगकर्ता के पास 'मेरी ड्राइव' फ़ोल्डर का मालिकाना हक है. ऐसा हो सकता है कि फ़ोल्डर में कई ऐसे उपयोगकर्ता हों जिनके पास अलग-अलग फ़ाइलों का ऐक्सेस हो. ऐक्सेस को सीमित करने वाले इस मॉडल का मतलब है कि अलग-अलग उपयोगकर्ताओं को एक ही फ़ोल्डर में मौजूद आइटम की अलग-अलग सूचियां दिख सकती हैं. अगर किसी उपयोगकर्ता के पास 'मेरी ड्राइव' के पैरंट फ़ोल्डर का ऐक्सेस है, लेकिन उस फ़ोल्डर में मौजूद किसी आइटम का ऐक्सेस नहीं है, तो उसके पास "सीमित ऐक्सेस" होता है. इससे ऐसी स्थिति पैदा हो जाती है जहां यह पता लगाना मुश्किल हो जाता है कि हैरारकी में किसे ऐक्सेस मिला है.

इसके उलट, शेयर की गई ड्राइव में मौजूद फ़ाइलों का मालिकाना हक, शेयर की गई ड्राइव के पास होता है. शेयर की गई ड्राइव में एक बड़ा मॉडल होता है, ताकि हर उपयोगकर्ता के पास एक ही फ़ोल्डर में मौजूद आइटम की एक जैसी सूची हो.

सीमित ऐक्सेस वाले फ़ोल्डर की सुविधा से, शेयर की गई ड्राइव में मौजूद फ़ोल्डर के ऐक्सेस मॉडल को 'मेरी ड्राइव' में भी लागू किया जा सकता है. इस बदलाव के बाद, सीमित ऐक्सेस वाले फ़ोल्डर ही ऐसे फ़ोल्डर हैं जिनमें किसी खास सबफ़ोल्डर के ऐक्सेस को प्रतिबंधित किया जा सकता है. ऐसा 'मेरी ड्राइव' और शेयर की गई ड्राइव, दोनों में किया जा सकता है.

इस गाइड में बताया गया है कि Google Drive में, सीमित और ज़्यादा ऐक्सेस वाले फ़ोल्डर कैसे मैनेज किए जा सकते हैं.

सीमित ऐक्सेस वाले फ़ोल्डर के बारे में जानकारी

फ़ोल्डर का ऐक्सेस कुछ खास लोगों तक सीमित करें.

सीमित ऐक्सेस वाले फ़ोल्डर की मदद से, फ़ोल्डर का ऐक्सेस कुछ लोगों तक सीमित किया जा सकता है. फ़ोल्डर को सिर्फ़ वे उपयोगकर्ता खोल सकते हैं जिन्हें आपने सीधे तौर पर फ़ोल्डर ऐक्सेस करने की अनुमति दी है. साथ ही, वे ही उपयोगकर्ता इसका कॉन्टेंट ऐक्सेस कर सकते हैं. जिन उपयोगकर्ताओं के पास शेयर किए गए 'मेरी ड्राइव' फ़ोल्डर या शेयर की गई ड्राइव के फ़ोल्डर का इनहेरिट किया गया ऐक्सेस है (पैरंट फ़ोल्डर से मिले ऐक्सेस के ज़रिए), वे Drive में पाबंदी वाला फ़ोल्डर देख सकते हैं, लेकिन उसे खोल नहीं सकते. इस सुविधा की मदद से, 'मेरी ड्राइव' और 'शेयर की गई ड्राइव' में मौजूद आइटम को शेयर करने के तरीके को बेहतर तरीके से अलाइन किया जा सकता है. इससे आपको संवेदनशील कॉन्टेंट वाले फ़ोल्डर को, ज़्यादा लोगों के साथ शेयर किए गए कॉन्टेंट के साथ व्यवस्थित करने में मदद मिलती है.

सीमित ऐक्सेस वाले फ़ोल्डर, 'मेरी ड्राइव' और शेयर की गई ड्राइव, दोनों में उपलब्ध होते हैं. 'मेरी ड्राइव' में owner की भूमिका और शेयर की गई ड्राइव में organizer की भूमिका वाले लोग, सीमित ऐक्सेस वाले फ़ोल्डर को हमेशा ऐक्सेस कर सकते हैं. फ़ोल्डर के उपयोगकर्ताओं की सूची में बदलाव करने के लिए, किसी खास अनुमति की ज़रूरत नहीं होती. जिन भूमिकाओं के पास फ़ोल्डर शेयर करने का ऐक्सेस होता है वे सदस्यों की सूचियां अपडेट कर सकती हैं. भूमिकाओं और अनुमतियों के बारे में ज़्यादा जानने के लिए, भूमिकाएं और अनुमतियां और शेयर की गई ड्राइव की खास जानकारी लेख पढ़ें.

ध्यान दें कि फ़ोल्डर एक तरह की फ़ाइल होते हैं. हालांकि, फ़ाइलों के लिए सीमित ऐक्सेस की सुविधा उपलब्ध नहीं है.

किसी फ़ोल्डर के लिए सीमित ऐक्सेस सेट करना

जिन उपयोगकर्ताओं के पास फ़ोल्डर का ऐक्सेस होता है वे सीमित ऐक्सेस वाले फ़ोल्डर को ऐक्सेस कर सकते हैं. हालांकि, 'मेरी ड्राइव' में owner की भूमिका और शेयर की गई ड्राइव में organizer की भूमिका वाले उपयोगकर्ता ही, सीमित ऐक्सेस की सुविधा को चालू या बंद कर सकते हैं.

इसके अलावा, अगर 'मेरी ड्राइव' में writer की भूमिका वाले किसी उपयोगकर्ता के पास, files संसाधन पर writersCanShare बूलियन फ़ील्ड को true पर सेट करने का विकल्प है, तो वह भी इस सुविधा को चालू या बंद कर सकता है.

किसी फ़ोल्डर का ऐक्सेस सीमित करने के लिए, files संसाधन पर मौजूद बूलियन inheritedPermissionsDisabled फ़ील्ड को true पर सेट करें. true होने पर, सिर्फ़ owner भूमिका, organizer भूमिका, और फ़ोल्डर की अनुमतियों वाले उपयोगकर्ता इसे ऐक्सेस कर सकते हैं.

इनहेरिट की गई अनुमतियों को फिर से चालू करने के लिए, inheritedPermissionsDisabled को false पर सेट करें.

किसी फ़ोल्डर का ऐक्सेस सीमित करने की अनुमति की पुष्टि करना

यह देखने के लिए कि किसी फ़ोल्डर का ऐक्सेस सीमित किया जा सकता है या नहीं, files संसाधन पर capabilities.canDisableInheritedPermissions और capabilities.canEnableInheritedPermissions फ़ील्ड की बूलियन वैल्यू देखें. इन सेटिंग से यह पुष्टि होती है कि आपके पास inheritedPermissionsDisabled फ़ील्ड के ज़रिए, किसी फ़ोल्डर का ऐक्सेस सीमित करने की अनुमति है या नहीं.

capabilities के बारे में ज़्यादा जानकारी के लिए, फ़ाइल की सुविधाओं के बारे में जानें लेख पढ़ें.

सीमित ऐक्सेस वाले फ़ोल्डर के चाइल्ड आइटम की सूची बनाना

यह देखने के लिए कि क्या किसी फ़ोल्डर के बच्चों को सूची में शामिल किया जा सकता है, capabilities.canListChildren बूलियन फ़ील्ड का इस्तेमाल करें.

अगर आइटम कोई फ़ोल्डर नहीं है या अनुरोध करने वाले व्यक्ति के पास फ़ोल्डर के कॉन्टेंट का ऐक्सेस नहीं है, तो दिखाई गई वैल्यू हमेशा false होती है. ऐसा तब होता है, जब inheritedPermissionsDisabled को false पर सेट करके, फ़ोल्डर के कॉन्टेंट का ऐक्सेस हटा दिया गया हो.

अगर फ़ोल्डर के कॉन्टेंट का ऐक्सेस हटा दिया गया है, तो भी files.get() और files.list() तरीकों का इस्तेमाल करके, फ़ोल्डर के मेटाडेटा को ऐक्सेस किया जा सकता है. यह पुष्टि करने के लिए कि ऐक्सेस सीमित है, जवाब के मुख्य हिस्से में देखें कि आइटम, MIME टाइप application/vnd.google-apps.folder वाला फ़ोल्डर है या नहीं. साथ ही, यह भी देखें कि capabilities.canListChildren फ़ील्ड की वैल्यू false पर सेट है या नहीं. ऐसे फ़ोल्डर के चाइल्ड फ़ोल्डर की सूची बनाने पर, नतीजा हमेशा खाली होता है.

सीमित ऐक्सेस वाले फ़ोल्डर के मेटाडेटा को ऐक्सेस करना

अगर आपके पास फ़ोल्डर के कॉन्टेंट का ऐक्सेस नहीं है, तो सीमित ऐक्सेस वाले फ़ोल्डर की मदद से, फ़ोल्डर का मेटाडेटा देखा जा सकता है.

किसी उपयोगकर्ता के ऐक्सेस का पता लगाने के लिए, permissions संसाधन का इस्तेमाल करते समय, 'मेरी ड्राइव' और शेयर की गई ड्राइव के ऐसे फ़ोल्डर जो सिर्फ़ मेटाडेटा का ऐक्सेस देते हैं उनमें रिस्पॉन्स बॉडी में ये वैल्यू शामिल होती हैं: inheritedPermissionsDisabled=true और view=metadata. भूमिका हमेशा reader पर सेट होती है. view फ़ील्ड में सिर्फ़ उन अनुमतियों के लिए जानकारी अपने-आप भर जाती है जो view से जुड़ी होती हैं. ज़्यादा जानकारी के लिए, व्यू लेख पढ़ें.

permissionDetails फ़ील्ड की सभी एंट्री के लिए, inherited फ़ील्ड को true पर सेट किया गया है. इससे पता चलता है कि अनुमति इनहेरिट की गई है और फ़ोल्डर के कॉन्टेंट का सीधा ऐक्सेस नहीं दिया गया है.

फ़ोल्डर के कॉन्टेंट और मेटाडेटा, दोनों का ऐक्सेस देने के लिए, inheritedPermissionsDisabled फ़ील्ड को false पर सेट करें या भूमिका को reader या उससे ज़्यादा पर अपडेट करें.

आखिर में, अगर किसी फ़ोल्डर (inheritedPermissionsDisabled=true) के लिए इनहेरिटेंस की सुविधा बंद करके, अनुमति को पहले सीमित किया गया था और फिर अनुमति को सीधे तौर पर फ़ोल्डर में वापस जोड़ दिया गया था, तो जवाब के मुख्य हिस्से में मौजूद वैल्यू inheritedPermissionsDisabled=true हो जाती हैं. साथ ही, view फ़ील्ड को 'सेट नहीं किया गया' के तौर पर मार्क कर दिया जाता है. अगर फ़ोल्डर किसी शेयर की गई ड्राइव में है, तो permissionDetails सूची में एक एंट्री होती है. इसमें inherited फ़ील्ड को false पर सेट किया जाता है, ताकि यह पता चल सके कि अनुमति इनहेरिट नहीं की गई है. इस अनुमति से, फ़ोल्डर के कॉन्टेंट और मेटाडेटा, दोनों को ऐक्सेस किया जा सकता है.

सीमित ऐक्सेस वाले फ़ोल्डर मिटाना

सीमित ऐक्सेस वाले फ़ोल्डर मिटाने के लिए, files संसाधन पर files.delete() तरीके का इस्तेमाल किया जा सकता है.

'मेरी ड्राइव' में, सिर्फ़ आइटम का मालिक ही फ़ोल्डर की हैरारकी मिटा सकता है. अगर कोई उपयोगकर्ता, ऐसे फ़ोल्डर की हैरारकी मिटाता है जिनका ऐक्सेस सीमित है और जिनका मालिकाना हक किसी दूसरे के पास है, तो ये फ़ोल्डर, मालिक के 'मेरी ड्राइव' में चले जाते हैं.

अगर उपयोगकर्ता के पास owner की भूमिका है, तो पूरी हैरारकी मिट जाएगी.

शेयर की गई ड्राइव में, organizer की भूमिका वाले लोग हैरारकी मिटा सकते हैं. भले ही, उनमें सीमित ऐक्सेस वाले फ़ोल्डर मौजूद हों. अगर fileOrganizer की भूमिका वाला व्यक्ति, ऐसी हैरारकी मिटाता है जिसमें सीमित ऐक्सेस वाले फ़ोल्डर मौजूद हैं, तो इसका नतीजा इस बात पर निर्भर करता है कि उन्हें सीमित ऐक्सेस वाले फ़ोल्डर में fileOrganizer के तौर पर फिर से जोड़ा गया था या नहीं. अगर ऐसा है, तो पूरी हैरारकी मिटा दी जाती है. अगर ऐसा नहीं होता है, तो सीमित ऐक्सेस वाले फ़ोल्डर, शेयर की गई ड्राइव के रूट फ़ोल्डर में चले जाते हैं.

सभी के लिए उपलब्ध ऐक्सेस के बारे में जानकारी

सीमित ऐक्सेस वाले फ़ोल्डर की सुविधा से, शेयर की गई ड्राइव से लेकर 'मेरी ड्राइव' तक, ऐक्सेस करने के लिए उपलब्ध फ़ोल्डर का दायरा बढ़ जाता है. ऐक्सेस मॉडल के रोल आउट होने के बाद, किसी फ़ोल्डर का ऐक्सेस होने का मतलब है कि उस फ़ोल्डर हैरारकी में मौजूद हर आइटम का ऐक्सेस कम से कम उसी लेवल का हो. सीमित ऐक्सेस वाले फ़ोल्डर, एक ऐसा अपवाद है जिसकी मदद से 'मेरी ड्राइव' और शेयर की गई ड्राइव, दोनों में किसी खास सब-फ़ोल्डर का ऐक्सेस सीमित किया जा सकता है. इसका यह भी मतलब है कि अगर आपके फ़ोल्डर का ऐक्सेस सीमित नहीं है, तो अब पैरंट फ़ोल्डर से मिले ऐक्सेस को हटाया नहीं जा सकता. ऐसा करने पर, Drive API गड़बड़ी का मैसेज दिखाता है. किसी फ़ोल्डर के अंदर मौजूद फ़ाइलों के लिए, ज़्यादा बारीकी से ऐक्सेस कंट्रोल सेट करने के लिए, फ़ोल्डर का ऐक्सेस सीमित करें.

सभी के लिए उपलब्ध ऐक्सेस के हिसाब से ढलना

डेवलपर के लिए, सभी के लिए उपलब्ध ऐक्सेस वाले मॉडल को अपनाना आसान बनाने के लिए, Google Drive API में कई सुधार किए गए हैं:

  1. permissions संसाधन के permissionDetails[] फ़ील्ड में, अब 'मेरी ड्राइव' में मौजूद आइटम के लिए डेटा भर दिया गया है. पहले, फ़ील्ड को या तो सेट नहीं किया जाता था या उन्हें teamDrivePermissionDetails फ़ील्ड से डुप्लीकेट किया जाता था. सिर्फ़ 'मेरी ड्राइव' में मौजूद permissionType और inherited फ़ील्ड में जानकारी अपने-आप भर जाती है.

    permissionDetails[].inherited फ़ील्ड से पता चलता है कि किसी आइटम की अनुमति, उसके पैरंट से इनहेरिट की गई है या नहीं. इससे यह पता लगाया जा सकता है कि क्या कुछ भूमिकाएं (जैसे कि reader) पैरंट से इनहेरिट की गई हैं. साथ ही, यह भी पता लगाया जा सकता है कि क्या किसी आइटम पर सीधे तौर पर कोई बड़ी भूमिका (जैसे कि writer) दी गई है.

    किसी आइटम के लिए अनुमतियां देखते समय, permissionDetails[] फ़ील्ड में एक से ज़्यादा एंट्री हो सकती हैं. अगर मौजूद है, तो उस स्कोप के लिए आइटम पर सीधे तौर पर अनुमति देने वाली एक एंट्री होती है. इसके बाद, आइटम पर इनहेरिट की गई या सदस्यों के लिए अनुमति देने वाली एंट्री होती हैं.

  2. डेवलपर, आने वाले समय में नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) से जुड़ी किसी भी कार्रवाई से पहले, My Drive में एपीआई के ज़्यादा ऐक्सेस के लिए ऑप्ट इन कर सकते हैं. enforceExpansiveAccess अनुरोध पैरामीटर को true पर सेट किया जा सकता है, ताकि ऐक्सेस से जुड़े आने वाले समय में होने वाले बदलावों का असर आपके ऐप्लिकेशन पर न पड़े.

    अभी ऑप्ट-इन करने का मतलब है कि एपीआई, 'मेरी ड्राइव' में मौजूद आइटम के लिए उसी तरह काम करेगा जिस तरह वह पहले से ही शेयर की गई ड्राइव में मौजूद आइटम के लिए काम करता है. उदाहरण के लिए, जब permissions.update() को कॉल किया जाता है, तब इनहेरिट की गई भूमिका से कम भूमिका वाले उपयोगकर्ता के लिए ऐक्सेस को सीमित करने की कोई भी कोशिश पूरी नहीं होती. इसी तरह, अगर अनुमति इनहेरिट की गई है, तो permissions.delete() को कॉल करने पर गड़बड़ी होती है.

ऐक्सेस पर लगी पाबंदी का पता लगाना और उसे रोकना

permissions.update() या permissions.delete() तरीकों का इस्तेमाल करने पर, आपका ऐप्लिकेशन 'मेरी ड्राइव' फ़ोल्डर के लिए सीमित ऐक्सेस बना सकता है. इसका मतलब है कि उपयोगकर्ता के पास पैरंट 'मेरी ड्राइव' फ़ोल्डर का ऐक्सेस है, लेकिन उस फ़ोल्डर में मौजूद किसी फ़ाइल का ऐक्सेस नहीं है.

इन तरीकों का इस्तेमाल करते समय, permissions संसाधन के फ़ील्ड की समीक्षा की जा सकती है. इससे यह पता चलता है कि किसी अनुरोध से, ऐक्सेस पर पाबंदी कहां लग सकती है. साथ ही, ऐसे अनुरोध भेजने से बचा जा सकता है. इस स्थिति का पता लगाने के लिए, अपने अनुरोध में enforceExpansiveAccess फ़ील्ड का इस्तेमाल करें.

इसके अलावा, अगर आपके ऐप्लिकेशन ने पहले ही आपके फ़ोल्डर के ऐक्सेस पर पाबंदी लगा दी है, तो यह तरीका अपनाएं:

  1. फ़ोल्डर हैरारकी में जाकर, प्रतिबंधित ऐक्सेस हटाएं. इसके बजाय, आपको फ़ोल्डर का ऐक्सेस सीमित करना चाहिए.

  2. अगर आपको किसी फ़ाइल को शेयर करने की सुविधा बंद करनी है, तो एक इंटरमीडिएट फ़ोल्डर बनाएं. इसके लिए, सीमित ऐक्सेस सेट करें. इसके बाद, फ़ाइल को नए फ़ोल्डर में ले जाएं.

  3. अगर आपको सीमित ऐक्सेस वाले फ़ोल्डर का इस्तेमाल नहीं करना है, लेकिन कुछ लोगों का ऐक्सेस हटाना है, तो फ़ाइल को किसी निजी फ़ोल्डर में ले जाएं. जैसे, 'मेरी ड्राइव' का रूट फ़ोल्डर. इसके बाद, आइटम की मूल जगह पर उसका शॉर्टकट बनाएं, ताकि उपयोगकर्ता अब भी उसका इस्तेमाल कर सकें.