یک کاربر صاحب یک پوشه My Drive است. پوشه ممکن است حاوی چندین کاربر با دسترسی به فایل های مختلف باشد. این مدل دسترسی محدود به این معنی است که کاربران مختلف می توانند لیست های مختلفی از موارد را در یک پوشه ببینند. کاربری که به پوشه والد My Drive دسترسی دارد اما به موردی در آن پوشه دسترسی ندارد، «دسترسی محدود» دارد. شرایطی را ایجاد می کند که در آن تشخیص اینکه چه کسی در سلسله مراتب دسترسی دارد دشوار است.
برعکس، فایلهای درایو مشترک متعلق به درایو مشترک است. درایوهای مشترک دارای یک مدل گسترده هستند، بنابراین هر کاربر لیست یکسانی از موارد در یک پوشه دارد.
معرفی پوشههایی با دسترسی محدود، مدل دسترسی گسترده را از درایوهای مشترک به My Drive تکرار میکند. با این تغییر، پوشههای با دسترسی محدود تنها استثنایی هستند که امکان محدود کردن دسترسی به یک زیرپوشه خاص را در My Drive و درایوهای مشترک فراهم میکنند.
این راهنما توضیح می دهد که چگونه می توانید پوشه هایی را با دسترسی محدود و دسترسی گسترده در Google Drive مدیریت کنید.
درباره پوشه هایی با دسترسی محدود
پوشه های با دسترسی محدود به شما امکان می دهند پوشه ها را به کاربران خاصی محدود کنید. فقط کاربرانی که مستقیماً به مجوزهای پوشه اضافه می کنید می توانند آن را باز کرده و به محتوای آن دسترسی داشته باشند. کاربران با دسترسی ارثی به پوشه مشترک My Drive یا پوشه درایو مشترک (از طریق دسترسی از یک پوشه والد) می توانند پوشه محدود شده را در Drive ببینند اما نمی توانند آن را باز کنند. این ویژگی رفتار اشتراکگذاری موارد را در My Drive و درایوهای مشترک بهتر تراز میکند و به شما امکان میدهد پوشههای دارای محتوای حساس را در کنار محتوای به اشتراکگذاشتهشدهتر سازماندهی کنید.
پوشههای با دسترسی محدود هم در My Drive و هم در درایوهای مشترک در دسترس هستند. نقش owner
در My Drive و نقش organizer
در درایوهای مشترک همیشه میتوانند به پوشههایی با دسترسی محدود دسترسی داشته باشند. برای تغییر لیست کاربران پوشه، هیچ مجوز خاصی لازم نیست. نقش هایی که می توانند پوشه ها را به اشتراک بگذارند می توانند لیست اعضا را به روز کنند. برای کسب اطلاعات بیشتر درباره نقشها و مجوزها، به نمای کلی نقشها و مجوزها و درایوهای مشترک مراجعه کنید.
توجه داشته باشید که اگرچه پوشهها نوعی فایل هستند، دسترسی محدودی برای فایلها در دسترس نیست.
دسترسی محدود را روی یک پوشه تنظیم کنید
در حالی که کاربران با مجوزهای پوشه مستقیم می توانند به پوشه ای با دسترسی محدود دسترسی داشته باشند، فقط نقش owner
در My Drive و نقش organizer
در درایوهای مشترک می توانند دسترسی محدود را فعال یا غیرفعال کنند.
علاوه بر این، اگر کاربری با نقش writer
در My Drive فیلد بولی writersCanShare
در منبع files
روی true
تنظیم شده باشد، میتواند این ویژگی را نیز روشن یا خاموش کند.
برای محدود کردن دسترسی به یک پوشه، فیلد بولین inheritedPermissionsDisabled
در منبع files
را روی true
تنظیم کنید. وقتی true
، فقط نقش owner
، نقش organizer
و کاربرانی که مجوزهای پوشه مستقیم دارند میتوانند به آن دسترسی داشته باشند.
برای فعال کردن مجدد مجوزهای ارثی، inheritedPermissionsDisabled
را روی false
تنظیم کنید.
مجوز محدود کردن دسترسی به یک پوشه را تأیید کنید
برای بررسی اینکه آیا میتوانید دسترسی به یک پوشه را محدود کنید یا خیر، مقادیر بولی فیلدهای capabilities.canDisableInheritedPermissions
and capabilities.canEnableInheritedPermissions
را در منبع files
بررسی کنید. این تنظیمات تأیید می کنند که آیا شما مجوز محدود کردن دسترسی به یک پوشه را از طریق فیلد inheritedPermissionsDisabled
دارید.
برای اطلاعات بیشتر در مورد capabilities
، به درک قابلیت های فایل مراجعه کنید.
فرزندان یک پوشه با دسترسی محدود را فهرست کنید
برای بررسی اینکه آیا میتوانید فرزندان یک پوشه را فهرست کنید، از فیلد بولی capabilities.canListChildren
استفاده کنید.
زمانی که مورد یک پوشه نیست یا اگر دسترسی درخواست کننده به محتویات پوشه با تنظیم inheritedPermissionsDisabled
روی false
حذف شده باشد، مقدار بازگشتی همیشه false
است.
اگر دسترسی شما به محتویات پوشه حذف شد، همچنان می توانید با متدهای files.get()
و files.list()
به فراداده پوشه دسترسی داشته باشید. برای تأیید اینکه دسترسی محدود است، بدنه پاسخ را بررسی کنید تا ببینید آیا مورد یک پوشه با نوع MIME application/vnd.google-apps.folder
است و فیلد capabilities.canListChildren
روی نادرست تنظیم شده است. اگر بخواهید فرزندان چنین پوشه ای را لیست کنید، نتیجه همیشه خالی است.
دسترسی به پوشه با فراداده دسترسی محدود
پوشههای با دسترسی محدود به شما امکان میدهند اگر به محتویات پوشه دسترسی ندارید، ابردادههای پوشه را مشاهده کنید.
هنگام استفاده از منبع permissions
برای تعیین دسترسی کاربر، هم پوشه My Drive و هم پوشه درایو مشترک که فقط به ابرداده دسترسی دارند حاوی مقادیر زیر در بدنه پاسخ هستند: inheritedPermissionsDisabled=true
و view=metadata
. نقش همیشه به reader
تنظیم شده است. قسمت view
فقط برای مجوزهایی پر می شود که به یک view
تعلق دارند. برای اطلاعات بیشتر، مشاهده ها را ببینید.
تمام ورودیهای فیلد permissionDetails
دارای فیلد inherited
روی true
تنظیم شدهاند تا نشان دهد که مجوز به ارث رسیده است و دسترسی مستقیم به محتوای پوشه داده نشده است.
برای اعطای دسترسی به محتوای پوشه و ابرداده، قسمت inheritedPermissionsDisabled
را روی false
تنظیم کنید یا نقش را به reader
یا بالاتر بهروزرسانی کنید.
در نهایت، اگر مجوز ابتدا با خاموش کردن وراثت در یک پوشه محدود شود ( inheritedPermissionsDisabled=true
)، و سپس مجوز مستقیماً به پوشه اضافه شود، مقادیر موجود در بدنه پاسخ به inheritedPermissionsDisabled=true
تبدیل میشوند و فیلد view
به صورت تنظیم نشده است. اگر پوشه در یک درایو مشترک است، لیست permissionDetails
دارای ورودی است که فیلد inherited
را روی false
تنظیم کرده است تا نشان دهد مجوز به ارث نمی رسد. این مجوز مانند هر مجوز دیگری به هر دو محتوای پوشه و ابرداده دسترسی می دهد.
پوشه های با دسترسی محدود را حذف کنید
می توانید پوشه هایی با دسترسی محدود را با استفاده از روش files.delete()
در منبع files
حذف کنید.
در My Drive، فقط مالک مورد میتواند سلسله مراتب پوشه را حذف کند. اگر کاربری سلسله مراتبی را با پوشههایی که دسترسی محدودی دارند و متعلق به دیگران است حذف کند، این پوشهها به My Drive مالک منتقل میشوند.
اگر کاربر نقش owner
را داشته باشد، کل سلسله مراتب حذف می شود.
در درایوهای مشترک، نقش organizer
میتواند سلسله مراتبها را حذف کند، حتی اگر حاوی پوشههایی با دسترسی محدود باشند. اگر نقش fileOrganizer
سلسله مراتبی را که شامل پوشههایی با دسترسی محدود است حذف کند، نتیجه بستگی به این دارد که آیا آنها به عنوان fileOrganizer
در پوشههایی با دسترسی محدود اضافه شده باشند. اگر آنها بودند، کل سلسله مراتب حذف می شود. در غیر این صورت، پوشههای با دسترسی محدود به پوشه اصلی درایو مشترک منتقل میشوند.
درباره دسترسی گسترده
معرفی پوشههایی با دسترسی محدود، مدل دسترسی گسترده را از درایوهای مشترک به My Drive گسترش میدهد. هنگامی که مدل دسترسی منتشر شد، دسترسی به یک پوشه به معنای حداقل همان سطح دسترسی به همه چیز در سلسله مراتب آن پوشه است. پوشههای با دسترسی محدود تنها استثنایی هستند که امکان محدود کردن دسترسی به یک زیرپوشه خاص در My Drive و درایوهای مشترک را فراهم میکنند. این همچنین به این معنی است که مگر اینکه پوشه شما دسترسی محدودی داشته باشد، دیگر نمی توانید دسترسی هایی را که از پوشه والد به ارث رسیده است حذف کنید. انجام این کار به این معنی است که Drive API یک پاسخ خطا برمی گرداند. برای تعریف کنترل دسترسی گرانول بیشتر در یک سلسله مراتب، می توانید دسترسی محدودی را روی پوشه تنظیم کنید .
با دسترسی گسترده سازگار شوید
برای تسهیل سازگاری توسعه دهندگان با دسترسی گسترده، چندین پیشرفت در Google Drive API انجام شد:
فیلد
permissionDetails[]
در منبعpermissions
اکنون برای موارد در My Drive پر شده است. قبلاً، فیلدها تنظیم نشده بودند یا در صورت لزوم از قسمتteamDrivePermissionDetails
تکرار می شدند. فقطpermissionType
و فیلدهایinherited
در My Drive پر شده است.فیلد
permissionDetails[].inherited
نشان میدهد که آیا مجوز از والد مورد به ارث رسیده است یا خیر. این به شما امکان میدهد تشخیص دهید که آیا نقشهای خاصی (مانندreader
) از والدین به ارث رسیدهاند یا خیر، و آیا نقش بالاتر (مانندwriter
) مستقیماً به آن مورد داده شده است.هنگام مشاهده مجوزهای یک مورد، قسمت
permissionDetails[]
ممکن است حاوی چندین ورودی باشد. در صورت وجود، یک ورودی برای مجوز مستقیماً در مورد آن محدوده، و سپس ورودی برای مجوزهای ارثی یا عضو در مورد وجود دارد.توسعهدهندگان میتوانند پیش از هر گونه اجرای اجباری آینده، رفتار API دسترسی گسترده در My Drive را انتخاب کنند. می توانید پارامتر درخواست
enforceExpansiveAccess
را رویtrue
تنظیم کنید تا تغییرات بعدی در دسترسی گسترده بر برنامه شما تأثیری نداشته باشد.انتخاب کردن اکنون به این معنی است که API برای موارد موجود در My Drive به همان صورت عمل میکند که قبلاً برای موارد در درایوهای مشترک انجام میشود. برای مثال، هر تلاشی برای محدود کردن دسترسی به زیر نقش ارثی هنگام فراخوانی
permissions.update()
با شکست مواجه میشود. به طور مشابه، در صورتی که مجوز به ارث برده شود، فراخوانی بهpermissions.delete()
با شکست مواجه می شود.
شناسایی و جلوگیری از دسترسی محدود
برنامه شما ممکن است هنگام استفاده از روشهای permissions.update()
یا permissions.delete()
دسترسی محدودی را در پوشه My Drive ایجاد کند (که در آن کاربر به پوشه My Drive والد دسترسی دارد اما به فایلی در آن پوشه دسترسی ندارد).
هنگام استفاده از این روشها، میتوانید فیلدهای موجود در منبع permissions
را بررسی کنید تا ببینید یک درخواست در کجا ممکن است دسترسی محدود ایجاد کند و از ارسال چنین درخواستهایی اجتناب کنید. برای تشخیص این وضعیت، از فیلد enforceExpansiveAccess
در درخواست خود استفاده کنید.
علاوه بر این، اگر برنامه شما قبلاً دسترسی محدود به پوشه های شما ایجاد کرده است، می توانید مراحل زیر را انجام دهید:
برای حذف دسترسی محدود، سلسله مراتب پوشه را طی کنید. به جای آن، باید دسترسی محدود به پوشه را تنظیم کنید .
اگر موردی که میخواهید اشتراکگذاری را لغو کنید یک فایل است، میتوانید یک پوشه میانی ایجاد کنید، دسترسی محدودی به آن تنظیم کنید و فایل را به داخل پوشه جدید منتقل کنید.
اگر نمیخواهید از پوشههای دسترسی محدود استفاده کنید، اما باید برخی از دسترسیها را حذف کنید، میتوانید فایل را به یک پوشه خصوصی (مانند پوشه ریشه My Drive) منتقل کنید. سپس می توانید یک میانبر برای مکان اصلی مورد ایجاد کنید تا کاربران همچنان بتوانند از آن استفاده کنند.
موضوعات مرتبط
- فایل ها، پوشه ها و درایوها را به اشتراک بگذارید
- نحوه عملکرد دسترسی به فایل در درایوهای مشترک
- درباره پوشه هایی با دسترسی محدود بیاموزید