किसी उपयोगकर्ता के पास 'मेरी ड्राइव' फ़ोल्डर का मालिकाना हक है. ऐसा हो सकता है कि फ़ोल्डर में कई ऐसे उपयोगकर्ता हों जिनके पास अलग-अलग फ़ाइलों का ऐक्सेस हो. ऐक्सेस को सीमित करने वाले इस मॉडल का मतलब है कि अलग-अलग उपयोगकर्ताओं को एक ही फ़ोल्डर में मौजूद आइटम की अलग-अलग सूचियां दिख सकती हैं. अगर किसी उपयोगकर्ता के पास पैरंट फ़ोल्डर 'मेरी ड्राइव' का ऐक्सेस है, लेकिन उस फ़ोल्डर में मौजूद किसी आइटम का ऐक्सेस नहीं है, तो उसके पास "सीमित ऐक्सेस" होता है. इससे ऐसी स्थिति पैदा होती है जहां यह जानना मुश्किल हो जाता है कि हैरारकी में किसके पास ऐक्सेस है.
इसके उलट, शेयर की गई ड्राइव में मौजूद फ़ाइलों का मालिकाना हक शेयर की गई ड्राइव के पास होता है. शेयर की गई ड्राइव में एक बड़ा मॉडल होता है. इसलिए, हर उपयोगकर्ता के पास एक ही फ़ोल्डर में मौजूद आइटम की एक ही सूची होती है.
सीमित ऐक्सेस वाले फ़ोल्डर की सुविधा से, शेयर की गई ड्राइव में मौजूद फ़ोल्डर के ऐक्सेस मॉडल को 'मेरी ड्राइव' में भी लागू किया जा सकता है. इस बदलाव के बाद, सीमित ऐक्सेस वाले फ़ोल्डर ही ऐसे फ़ोल्डर हैं जिनमें किसी खास सबफ़ोल्डर के ऐक्सेस को प्रतिबंधित किया जा सकता है. ऐसा 'मेरी ड्राइव' और शेयर की गई ड्राइव, दोनों में किया जा सकता है.
इस गाइड में बताया गया है कि 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 में कई सुधार किए गए हैं:
permissionsसंसाधन पर मौजूदpermissionDetails[]फ़ील्ड में, अब 'मेरी ड्राइव' में मौजूद आइटम के लिए जानकारी भरी गई है. पहले, फ़ील्ड या तो सेट नहीं किए जाते थे या उन्हेंteamDrivePermissionDetailsफ़ील्ड से कॉपी किया जाता था. सिर्फ़ 'मेरी ड्राइव' में मौजूदpermissionTypeऔरinheritedफ़ील्ड में जानकारी अपने-आप भर जाती है.permissionDetails[].inheritedफ़ील्ड से पता चलता है कि क्या किसी आइटम की अनुमति, उसके पैरंट से इनहेरिट की गई है. इससे यह पता लगाया जा सकता है कि क्या कुछ भूमिकाएं (जैसे किreader) पैरंट से इनहेरिट की गई हैं. साथ ही, यह भी पता लगाया जा सकता है कि क्या किसी आइटम को सीधे तौर पर कोई बड़ी भूमिका (जैसे किwriter) दी गई है.किसी आइटम के लिए अनुमतियां देखते समय,
permissionDetails[]फ़ील्ड में एक से ज़्यादा एंट्री हो सकती हैं. अगर मौजूद है, तो उस स्कोप के लिए आइटम पर सीधे तौर पर अनुमति देने वाली एक एंट्री होती है. इसके बाद, आइटम पर इनहेरिट की गई या सदस्य की अनुमतियों के लिए एंट्री होती हैं.डेवलपर, आने वाले समय में नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) से जुड़ी किसी भी कार्रवाई से पहले, MyDrive में एपीआई के ज़्यादा ऐक्सेस के लिए ऑप्ट इन कर सकते हैं.
enforceExpansiveAccessअनुरोध पैरामीटर कोtrueपर सेट किया जा सकता है, ताकि आने वाले समय में, ज़्यादा ऐक्सेस से जुड़े बदलावों का असर आपके ऐप्लिकेशन पर न पड़े.अभी ऑप्ट-इन करने का मतलब है कि एपीआई, 'मेरी ड्राइव' में मौजूद आइटम के लिए उसी तरह काम करेगा जिस तरह वह पहले से ही शेयर की गई ड्राइव में मौजूद आइटम के लिए काम करता है. उदाहरण के लिए, जब
permissions.update()को कॉल किया जाता है, तब इनहेरिट की गई भूमिका से कम भूमिका वाले उपयोगकर्ता के लिए, ऐक्सेस को सीमित करने की कोई भी कोशिश पूरी नहीं होती. इसी तरह, अगर अनुमति इनहेरिट की गई है, तोpermissions.delete()को कॉल करने पर गड़बड़ी होती है.
ऐक्सेस पर लगी पाबंदी का पता लगाना और उसे रोकना
permissions.update() या permissions.delete() तरीकों का इस्तेमाल करने पर, आपका ऐप्लिकेशन 'मेरी ड्राइव' फ़ोल्डर में मौजूद फ़ाइलों के लिए, सीमित ऐक्सेस बना सकता है. इसका मतलब है कि उपयोगकर्ता के पास पैरंट 'मेरी ड्राइव' फ़ोल्डर का ऐक्सेस होगा, लेकिन उस फ़ोल्डर में मौजूद किसी फ़ाइल का ऐक्सेस नहीं होगा.
इन तरीकों का इस्तेमाल करते समय, permissionsसंसाधन के फ़ील्ड की समीक्षा की जा सकती है. इससे यह पता चलता है कि किसी अनुरोध से, ऐक्सेस पर पाबंदी कहां लग सकती है. साथ ही, इस तरह के अनुरोध भेजने से बचा जा सकता है. इस स्थिति का पता लगाने के लिए, अपने अनुरोध में enforceExpansiveAccess फ़ील्ड का इस्तेमाल करें.
इसके अलावा, अगर आपके ऐप्लिकेशन ने पहले ही आपके फ़ोल्डर पर सीमित ऐक्सेस सेट कर दिया है, तो यह तरीका अपनाएं:
फ़ोल्डर के क्रम में ऊपर-नीचे जाकर, प्रतिबंधित ऐक्सेस हटाएं. इसके बजाय, आपको फ़ोल्डर का ऐक्सेस सीमित करना चाहिए.
अगर आपको किसी फ़ाइल को शेयर करने की सुविधा बंद करनी है, तो एक इंटरमीडिएट फ़ोल्डर बनाएं. इसके लिए, सीमित ऐक्सेस सेट करें. इसके बाद, फ़ाइल को नए फ़ोल्डर में ले जाएं.
अगर आपको सीमित ऐक्सेस वाले फ़ोल्डर का इस्तेमाल नहीं करना है, लेकिन कुछ लोगों का ऐक्सेस हटाना है, तो फ़ाइल को किसी निजी फ़ोल्डर में ले जाएं. जैसे, 'मेरी ड्राइव' का रूट फ़ोल्डर. इसके बाद, आइटम की मूल जगह पर उसका शॉर्टकट बनाएं, ताकि उपयोगकर्ता अब भी उसका इस्तेमाल कर सकें.
मिलते-जुलते विषय
- फ़ाइलें, फ़ोल्डर, और ड्राइव शेयर करना
- शेयर की गई ड्राइव में फ़ाइल ऐक्सेस करने की सुविधा कैसे काम करती है
- सीमित ऐक्सेस वाले फ़ोल्डर के बारे में जानकारी