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

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

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

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

इस गाइड में बताया गया है कि 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. डेवलपर, आने वाले समय में नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) से जुड़ी किसी भी ज़रूरी कार्रवाई से पहले, 'मेरा ड्राइव' में एपीआई के ज़्यादा ऐक्सेस के लिए ऑप्ट इन कर सकते हैं. enforceExpansiveAccess अनुरोध पैरामीटर को true पर सेट किया जा सकता है, ताकि आने वाले समय में, ज़्यादा ऐक्सेस से जुड़े बदलावों का आपके ऐप्लिकेशन पर असर न पड़े.

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

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

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

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

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

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

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

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