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

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

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

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

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

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

फ़ोल्डर को कुछ खास उपयोगकर्ताओं के लिए सीमित करें.

सीमित ऐक्सेस वाले फ़ोल्डर की मदद से, फ़ोल्डर को कुछ खास उपयोगकर्ताओं के लिए सीमित किया जा सकता है. फ़ोल्डर को सिर्फ़ वे उपयोगकर्ता खोल सकते हैं जिन्हें आपने सीधे तौर पर फ़ोल्डर ऐक्सेस करने की अनुमति दी है. साथ ही, वे ही लोग फ़ोल्डर का कॉन्टेंट ऐक्सेस कर सकते हैं. जिन लोगों के पास इनहेरिट किया गया ऐक्सेस है वे 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() तरीकों से, फ़ोल्डर का metadata ऐक्सेस किया जा सकता है. ऐक्सेस सीमित है या नहीं, इसकी पुष्टि करने के लिए जवाब के मुख्य हिस्से को देखें. इससे यह पता चलेगा कि आइटम, एमआईई टाइप application/vnd.google-apps.folder वाला फ़ोल्डर है या नहीं और capabilities.canListChildren फ़ील्ड को 'गलत' पर सेट किया गया है या नहीं. अगर ऐसे फ़ोल्डर के चाइल्ड फ़ोल्डर की सूची बनाई जाती है, तो नतीजा हमेशा खाली होता है.

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

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

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