هر فایل، پوشه و درایو مشترک Google Drive دارای منابع permissions
مرتبط است. هر منبع مجوز یک type
خاص ( user
، group
، domain
، anyone
) و role
( owner
، organizer
، سازماندهنده fileOrganizer
، writer
، commenter
، reader
) را مشخص میکند. به عنوان مثال، یک فایل ممکن است مجوزی داشته باشد که به یک کاربر خاص ( type=user
) دسترسی فقط خواندنی ( role=reader
) می دهد در حالی که مجوز دیگری به اعضای یک گروه خاص ( type=group
) امکان اضافه کردن نظر به یک فایل را می دهد. role=commenter
).
برای فهرست کامل نقشها و عملیاتهای مجاز هر کدام، به نقشها و مجوزها مراجعه کنید.
سناریوهایی برای به اشتراک گذاری منابع Drive
پنج نوع مختلف سناریوهای اشتراکگذاری وجود دارد:
برای اشتراکگذاری فایل در My Drive، کاربر باید
role=writer
یاrole=owner
داشته باشد.اگر مقدار بولی
writersCanShare
برای فایل رویfalse
تنظیم شده باشد، کاربر بایدrole=owner
داشته باشد.اگر کاربر دارای
role=writer
دسترسی موقتی داشته باشد که توسط تاریخ و زمان انقضا کنترل می شود، نمی تواند فایل را به اشتراک بگذارد. برای اطلاعات بیشتر، به تنظیم تاریخ انقضا برای محدود کردن دسترسی به فایل مراجعه کنید.
برای اشتراکگذاری یک پوشه در My Drive، کاربر باید
role=writer
یاrole=owner
داشته باشد.اگر مقدار بولی
writersCanShare
برای فایل رویfalse
تنظیم شده باشد، کاربر بایدrole=owner
مجاز تری داشته باشد.دسترسی موقت (با تاریخ و زمان انقضا) در پوشههای My Drive با
role=writer
مجاز نیست. برای اطلاعات بیشتر، به تنظیم تاریخ انقضا برای محدود کردن دسترسی به فایل مراجعه کنید.
برای اشتراکگذاری فایل در درایو مشترک، کاربر باید
role=writer
،role=fileOrganizer
یاrole=organizer
داشته باشد.- تنظیم
writersCanShare
برای موارد موجود در درایوهای مشترک اعمال نمی شود. طوری رفتار می شود که انگار همیشه رویtrue
تنظیم شده است.
- تنظیم
برای اشتراک گذاری یک پوشه در درایو مشترک، کاربر باید
role=organizer
داشته باشد.- اگر محدودیت
sharingFoldersRequiresOrganizerPermission
در درایو مشترک رویfalse
تنظیم شود، کاربران باrole=fileOrganizer
می توانند پوشه ها را در آن درایو مشترک به اشتراک بگذارند.
- اگر محدودیت
برای مدیریت عضویت درایو مشترک، کاربر باید
role=organizer
داشته باشد. فقط کاربران و گروه ها می توانند عضو درایوهای مشترک باشند.
برای محدود کردن دسترسی به فایل، تاریخ انقضا تعیین کنید
وقتی با افراد روی پروژهای حساس کار میکنید، ممکن است بخواهید پس از مدتی دسترسی آنها را به فایلهای خاصی در Drive محدود کنید. برای فایلهای My Drive، میتوانید تاریخ انقضا را برای محدود کردن یا حذف دسترسی به آن فایل تعیین کنید.
برای تنظیم تاریخ انقضا:
از متد
create()
در منبعpermissions
استفاده کنید و فیلدexpirationTime
(همراه با سایر فیلدهای مورد نیاز) را تنظیم کنید. برای اطلاعات بیشتر، به ایجاد مجوز مراجعه کنید.از متد
update()
در منبعpermissions
استفاده کنید و قسمتexpirationTime
(همراه با سایر فیلدهای مورد نیاز) را تنظیم کنید. برای اطلاعات بیشتر، به تغییر مجوزها مراجعه کنید.
فیلد expirationTime
زمانی را نشان می دهد که مجوز با استفاده از RFC 3339 date-time منقضی می شود. زمان انقضا دارای محدودیت های زیر است:
- آنها را فقط می توان روی مجوزهای کاربر و گروه تنظیم کرد.
- زمان باید در آینده باشد.
- زمان در آینده نمی تواند بیش از یک سال باشد.
برای اطلاعات بیشتر در مورد تاریخ انقضا، به مقالات زیر مراجعه کنید:
انتشار مجوز
لیست های مجوز برای یک پوشه به سمت پایین منتشر می شود و همه فایل ها و پوشه های فرزند مجوزها را از والدین به ارث می برند. هر زمان که مجوزها یا سلسله مراتب تغییر می کند، انتشار به صورت بازگشتی در تمام پوشه های تودرتو انجام می شود. به عنوان مثال، اگر یک فایل در یک پوشه وجود داشته باشد و سپس آن پوشه به پوشه دیگری منتقل شود، مجوزهای موجود در پوشه جدید به فایل منتشر می شود. اگر پوشه جدید به کاربر فایل نقش جدیدی مانند "نویسنده" بدهد، نقش قبلی آنها را لغو می کند.
برعکس، اگر یک فایل role=writer
از یک پوشه به ارث ببرد، و به پوشه دیگری منتقل شود که نقش "خواننده" را ارائه می دهد، فایل اکنون role=reader
را به ارث می برد.
مجوزهای ارثی را نمی توان از یک فایل یا پوشه در درایو مشترک حذف کرد. در عوض این مجوزها باید بر روی والد مستقیم یا غیرمستقیم که از آن به ارث رسیده اند تنظیم شوند. مجوزهای موروثی را می توان از موارد زیر "My Drive" یا "Shared with me" حذف کرد.
برعکس، مجوزهای ارثی را می توان روی یک فایل یا پوشه در My Drive لغو کرد. بنابراین، اگر یک فایل role=writer
از پوشه My Drive به ارث می برد، می توانید role=reader
روی فایل تنظیم کنید تا سطح مجوز آن را کاهش دهید.
قابلیت ها
منبع permissions
در نهایت توانایی کاربر فعلی برای انجام اقدامات روی یک فایل یا پوشه را تعیین نمی کند. در عوض، منبع files
شامل مجموعهای از فیلدهای capabilities
بولی است که برای نشان دادن اینکه آیا میتوان یک عمل را روی یک فایل یا پوشه انجام داد یا خیر. Google Drive API این فیلدها را بر اساس منبع مجوزهای کاربر فعلی مرتبط با فایل یا پوشه تنظیم می کند.
به عنوان مثال، هنگامی که الکس به برنامه شما وارد می شود و سعی می کند یک فایل را به اشتراک بگذارد، نقش الکس برای مجوزهای فایل بررسی می شود. اگر نقش به آنها اجازه می دهد تا یک فایل را به اشتراک بگذارند، capabilities
مربوط به فایل، مانند canShare
، نسبت به نقش پر می شود. اگر الکس بخواهد فایل را به اشتراک بگذارد، برنامه شما capabilities
را بررسی می کند تا مطمئن شود canShare
روی true
تنظیم شده است.
برای مثالی از capabilities
بازیابی فایل، به تأیید مجوزهای کاربر مراجعه کنید.
یک مجوز ایجاد کنید
هنگام ایجاد مجوز، دو فیلد زیر ضروری است:
type
:type
محدوده مجوز (user
،group
،domain
یاanyone
) را مشخص می کند. یک مجوز باtype=user
برای یک کاربر خاص اعمال می شود در حالی که مجوز باtype=domain
برای همه افراد در یک دامنه خاص اعمال می شود.role
: فیلدrole
عملیاتی را کهtype
می تواند انجام دهد را مشخص می کند. به عنوان مثال، یک مجوز باtype=user
وrole=reader
به کاربر خاصی دسترسی فقط خواندنی به فایل یا پوشه می دهد. یا، یک مجوز باtype=domain
وrole=commenter
به همه افراد موجود در دامنه اجازه میدهد به یک فایل نظر اضافه کنند. برای فهرست کامل نقشها و عملیاتهای مجاز هر کدام، به نقشها و مجوزها مراجعه کنید.
هنگامی که مجوزی ایجاد میکنید که در آن type=user
یا type=group
، باید یک emailAddress
نیز ارائه کنید تا کاربر یا گروه خاص را با مجوز مرتبط کنید.
وقتی مجوزی ایجاد میکنید که در آن type=domain
، باید domain
نیز برای مرتبط کردن یک دامنه خاص به مجوز ارائه دهید.
برای ایجاد مجوز:
- از متد
create()
با پارامتر مسیرfileId
برای فایل یا پوشه مرتبط استفاده کنید. - در بدنه درخواست،
type
وrole
مشخص کنید. - اگر
type=user
یاtype=group
، یکemailAddress
ارائه دهید. اگرtype=domain
، یکdomain
ارائه کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه ایجاد مجوز را نشان می دهد. پاسخ نمونه ای از یک منبع Permission
، از جمله permissionId
اختصاص داده شده را برمی گرداند.
درخواست کنید
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
پاسخ
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
از مخاطبان هدف استفاده کنید
مخاطبان هدف گروههایی از افراد هستند - مانند بخشها یا تیمها - که میتوانید به کاربران توصیه کنید موارد خود را با آنها به اشتراک بگذارند. میتوانید کاربران را تشویق کنید که موارد را با مخاطبان خاص یا محدودتر بهجای کل سازمانتان به اشتراک بگذارند. مخاطبان هدف می توانند به شما در بهبود امنیت و حریم خصوصی داده های خود کمک کنند و اشتراک گذاری مناسب را برای کاربران آسان تر کنند. برای اطلاعات بیشتر، درباره مخاطبان هدف رجوع کنید.
برای استفاده از مخاطبان هدف:
در کنسول Google Admin، به > دایرکتوری > مخاطبان هدف بروید.
منوبرای این کار باید با استفاده از یک حساب کاربری با امتیازات سرپرست فوق العاده وارد سیستم شوید.
در فهرست مخاطبان هدف ، روی نام مخاطب مورد نظر کلیک کنید. برای ایجاد یک مخاطب هدف، به ایجاد یک مخاطب هدف مراجعه کنید
شناسه منحصر به فرد را از URL مخاطب هدف کپی کنید:
https://admin.google.com/ac/targetaudiences/ ID
.یک مجوز با
type=domain
ایجاد کنید و فیلدdomain
را رویID .audience.googledomains.com
تنظیم کنید.
برای مشاهده نحوه تعامل کاربران با مخاطبان هدف، به تجربه کاربری برای اشتراکگذاری پیوند مراجعه کنید.
تمام مجوزهای یک فایل، پوشه یا درایو مشترک را بازیابی کنید
از متد list()
در منبع permissions
برای بازیابی همه مجوزهای یک فایل، پوشه یا درایو مشترک استفاده کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه دریافت همه مجوزها را نشان می دهد. پاسخ لیستی از مجوزها را برمی گرداند.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
پاسخ
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
مجوزهای کاربر را تأیید کنید
وقتی برنامه شما فایلی را باز میکند، باید قابلیتهای فایل را بررسی کند و رابط کاربری را طوری نمایش دهد که مجوزهای کاربر فعلی را منعکس کند. به عنوان مثال، اگر کاربر قابلیت canComment
روی فایل نداشته باشد، قابلیت نظر دادن باید در UI غیرفعال شود.
برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
برای بررسی قابلیت ها، متد get()
را در منبع files
با پارامتر مسیر fileId
و پارامتر fields
روی فیلد capabilities
تنظیم شده است. برای اطلاعات بیشتر در مورد بازگرداندن فیلدها با استفاده از پارامتر fields
، به بازگشت فیلدهای خاص برای یک فایل مراجعه کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه تأیید مجوزهای کاربر را نشان می دهد. پاسخ لیستی از قابلیت هایی را که کاربر روی فایل دارد برمی گرداند. هر قابلیت مربوط به یک اقدام دقیق است که کاربر می تواند انجام دهد. برخی از فیلدها فقط برای موارد موجود در درایوهای مشترک پر شده اند.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
پاسخ
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
منبع نقش را برای فایلها و پوشههای درایو مشترک تعیین کنید
برای تغییر نقش در یک فایل یا پوشه، باید منبع نقش را بدانید. برای درایوهای مشترک، منبع یک نقش می تواند بر اساس عضویت در درایو مشترک، نقش روی یک پوشه یا نقش روی یک فایل باشد.
برای تعیین منبع نقش برای یک درایو مشترک، یا موارد درون آن درایو، متد get()
را در منبع permissions
با پارامترهای مسیر fileId
و permissionId
و پارامتر fields
را روی قسمت permissionDetails
تنظیم کنید.
برای پیدا کردن permissionId
، از متد list()
در منبع permissions
با پارامتر مسیر fileId
استفاده کنید. برای واکشی فیلد permissionDetails
در درخواست list
، پارامتر fields
را روی permissions/permissionDetails
تنظیم کنید.
این فیلد تمام مجوزهای فایل ارثی و مستقیم برای کاربر، گروه یا دامنه را برمیشمارد.
یک مثال نشان دهید
نمونه کد زیر نحوه تعیین منبع نقش را نشان می دهد. پاسخ permissionDetails
یک منبع permissions
را برمیگرداند. فیلد inheritedFrom
شناسه موردی را که مجوز از آن به ارث رسیده است را ارائه می دهد.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
پاسخ
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
تغییر مجوزها
برای تغییر مجوزهای یک فایل یا پوشه، می توانید نقش اختصاص داده شده را تغییر دهید:
متد
update()
را در منبعpermissions
با پارامتر مسیرpermissionId
روی مجوز تغییر و پارامتر مسیرfileId
روی فایل، پوشه یا درایو مشترک مربوطه فراخوانی کنید. برای پیدا کردنpermissionId
، از متدlist()
در منبعpermissions
با پارامتر مسیرfileId
استفاده کنید.در درخواست،
role
جدید را مشخص کنید.
شما میتوانید به فایلها یا پوشههای جداگانه در درایو مشترک مجوز بدهید، حتی اگر کاربر یا گروه قبلاً عضو آن باشد. به عنوان مثال، Alex دارای role=commenter
به عنوان بخشی از عضویت خود در یک درایو مشترک است. با این حال، برنامه شما میتواند به Alex role=writer
برای فایلی در درایو مشترک اعطا کند. در این حالت، چون نقش جدید مجازتر از نقشی است که از طریق عضویت آنها اعطا شده است، مجوز جدید به نقش مؤثر پرونده یا پوشه تبدیل می شود.
یک مثال نشان دهید
نمونه کد زیر نحوه تغییر مجوزهای یک فایل یا پوشه از نظر دهنده به نویسنده را نشان می دهد. پاسخ نمونه ای از یک منبع permissions
را برمی گرداند.
درخواست کنید
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
پاسخ
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
پیشنهادهای دسترسی معلق را فهرست و حل کنید
پیشنهاد دسترسی ، پیشنهادی است از سوی درخواستکننده به تأییدکننده برای اعطای دسترسی گیرنده به یک مورد Drive.
یک تأییدکننده میتواند همه پیشنهادات دسترسی حلنشده در فایلهای Drive را بررسی کرده و روی آنها عمل کند. این بدان معناست که شما می توانید با پرس و جوی برنامه نویسی برای پیشنهادهای دسترسی و سپس حل آنها، روند تأیید را سرعت بخشید. همچنین اجازه می دهد تا پیشنهادات را به صورت مجموع توسط یک تایید کننده مشاهده کند.
Drive API منبع accessproposals
فراهم می کند تا بتوانید پیشنهادات دسترسی معلق را مشاهده و حل کنید. روشهای منبع accessproposals
روی فایلها، پوشهها، فایلهای موجود در درایو مشترک کار میکنند اما روی درایو مشترک کار نمیکنند .
شرایط زیر برای دسترسی به پیشنهادات خاص است:
- درخواست کننده : کاربری که پیشنهاد دسترسی به یک مورد Drive را آغاز می کند.
- گیرنده : کاربری که در صورت اعطای پیشنهاد دسترسی، مجوزهای اضافی روی یک فایل دریافت می کند. اغلب اوقات گیرنده همان درخواست کننده است اما نه همیشه.
- تایید کننده : کاربری که مسئول تایید (یا رد) پیشنهاد دسترسی است. این معمولاً به این دلیل است که آنها مالک سند هستند یا توانایی اشتراک گذاری سند را دارند.
فهرست پیشنهادهای دسترسی در انتظار
برای فهرست کردن همه پیشنهادات دسترسی معلق روی یک آیتم Drive، متد list()
را در منبع accessproposals
فراخوانی کنید و پارامتر مسیر fileId
را وارد کنید.
فقط تأییدکنندگان یک فایل میتوانند پیشنهادهای معلق را در یک فایل فهرست کنند. تایید کننده کاربری با قابلیت can_approve_access_proposals
در فایل است. اگر درخواست کننده تایید کننده نباشد، یک لیست خالی برگردانده می شود. برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
بدنه پاسخ متشکل از یک شی AccessProposal
است که فهرستی از پیشنهادات دسترسی حل نشده در فایل را نشان می دهد.
شی AccessProposal
شامل اطلاعات مربوط به هر پیشنهاد مانند درخواست کننده، گیرنده و پیامی است که درخواست کننده اضافه کرده است. همچنین شامل یک شی AccessProposalRoleAndView
است که role
پیشنهادی درخواست کننده را با یک view
گروه بندی می کند. از آنجایی که role
یک فیلد تکراری است، ممکن است چندین مورد برای هر پیشنهاد وجود داشته باشد. برای مثال، یک پروپوزال ممکن است یک شی AccessProposalRoleAndView
از role=reader
و view=published
، به علاوه یک شی AccessProposalRoleAndView
اضافی با فقط مقدار role=writer
داشته باشد. برای اطلاعات بیشتر، مشاهده ها را ببینید.
برای سفارشی کردن صفحه بندی یا فیلتر کردن پیشنهادهای دسترسی، پارامترهای پرس و جو زیر را ارسال کنید:
pageToken
: یک نشانه صفحه، دریافت شده از یک تماس فهرست قبلی. این نشانه را برای بازیابی صفحه بعدی ارائه دهید.pageSize
: حداکثر تعداد پیشنهادهای دسترسی برای بازگشت در هر صفحه.
پیشنهادات دسترسی معلق را حل کنید
برای حل و فصل همه پیشنهادات دسترسی معلق روی یک آیتم Drive، متد resolve()
را در منبع accessproposals
فراخوانی کنید و پارامترهای مسیر fileId
و proposalId
را بگنجانید.
متد resolve()
شامل یک پارامتر پرس و جوی action
است که نشان دهنده اقدامی است که باید روی پیشنهاد انجام شود. شی Action
تغییر حالت پیشنهاد را ردیابی می کند تا بدانیم آیا پذیرفته یا رد شده است.
متد resolve()
همچنین شامل پارامترهای پرس و جو اختیاری role
و view
است. تنها نقش های پشتیبانی شده writer
، commenter
و reader
هستند. اگر نقش مشخص نشده باشد، به طور پیشفرض روی reader
قرار میگیرد. یک پارامتر پرس و جو اختیاری اضافی send_notification
به شما امکان می دهد در صورت قبول یا رد پیشنهاد، یک اعلان ایمیلی برای درخواست کننده ارسال کنید.
درست مانند متد list()
، کاربرانی که پروپوزال را حل می کنند باید قابلیت can_approve_access_proposals
را در فایل داشته باشند. برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
پیشنهادها با استفاده از همان الگوهای فهرست شده در زیر سناریوها برای اشتراک منابع Drive حل می شوند. اگر چندین پیشنهاد برای یک کاربر وجود داشته باشد، اما با نقش های متفاوت، موارد زیر اعمال می شود:
- اگر یک پیشنهاد پذیرفته شود و یکی رد شود، نقش پذیرفته شده برای مورد Drive اعمال می شود.
- اگر هر دو پیشنهاد به طور همزمان پذیرفته شوند، پروپوزال با مجوز بالاتر (به عنوان مثال،
role=writer
در مقابلrole=reader
) اعمال می شود. پیشنهاد دسترسی دیگر از مورد حذف می شود.
پس از ارسال پروپوزال به متد resolve()
، عمل اشتراک گذاری کامل می شود. AccessProposal
دیگر از طریق متد list()
بازگردانده نمی شود. پس از پذیرش پیشنهاد، کاربر باید از مجموعه permissions
برای به روز رسانی مجوزها در یک فایل یا پوشه استفاده کند. برای اطلاعات بیشتر، به بخش تغییر مجوزها مراجعه کنید.
دسترسی به یک فایل یا پوشه را لغو کنید
برای لغو دسترسی به یک فایل یا پوشه، متد delete()
را در منبع permissions
با fileId
و پارامترهای مسیر permissionId
که برای حذف مجوز تنظیم شده است، فراخوانی کنید.
برای موارد موجود در «درایو من»، امکان حذف یک مجوز ارثی وجود دارد. حذف یک مجوز ارثی دسترسی به مورد و موارد فرزند را در صورت وجود لغو می کند.
برای موارد موجود در درایو مشترک، مجوزهای موروثی قابل لغو نیستند. در عوض مجوز فایل یا پوشه والد را بهروزرسانی یا لغو کنید.
متد delete()
همچنین برای حذف مجوزهایی که مستقیماً به فایل یا پوشه درایو مشترک اعمال می شود استفاده می شود.
یک مثال نشان دهید
نمونه کد زیر نحوه لغو دسترسی با حذف permissionId
را نشان می دهد. در صورت موفقیت آمیز بودن، بدنه پاسخ خالی است. برای تایید حذف مجوز، از متد list()
در منبع permissions
با پارامتر مسیر fileId
استفاده کنید.
درخواست کنید
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
مالکیت فایل را به حساب Google Workspace دیگری در همان سازمان منتقل کنید
مالکیت فایلهای موجود در «My Drive» را میتوان از یک حساب Google Workspace به حساب دیگری در همان سازمان منتقل کرد. سازمانی که دارای یک درایو مشترک است، مالک فایلهای درون آن است. بنابراین، انتقال مالکیت برای فایلها و پوشهها در درایوهای مشترک پشتیبانی نمیشود. سازماندهندگان یک درایو مشترک میتوانند موارد را از آن درایو مشترک به «درایو من» خود منتقل کنند که مالکیت را به آنها منتقل میکند.
برای انتقال مالکیت یک فایل در My Drive، یکی از موارد زیر را انجام دهید:
یک مجوز فایل ایجاد کنید که به یک کاربر خاص (
type=user
) دسترسی مالک (role=owner
) را بدهد.مجوز یک فایل موجود را با
role=owner
به روز کنید و مالکیت را به کاربر مشخص شده منتقل کنید (transferOwnership=true
).
انتقال مالکیت فایل از یک حساب مصرف کننده به حساب دیگر
مالکیت فایل ها را می توان بین یک حساب مصرف کننده به حساب دیگر منتقل کرد. با این حال، Drive مالکیت یک فایل را بین دو حساب مصرفکننده منتقل نمیکند تا زمانی که مالک احتمالی صریحاً با انتقال موافقت کند. برای انتقال مالکیت فایل از یک حساب مصرف کننده به حساب دیگر:
مالک فعلی با ایجاد یا بهروزرسانی مجوز فایل مالک احتمالی، انتقال مالکیت را آغاز میکند. مجوز باید شامل این تنظیمات باشد:
role=writer
،type=user
وpendingOwner=true
. اگر مالک فعلی مجوزی برای مالک احتمالی ایجاد کند، یک اعلان ایمیلی برای مالک احتمالی ارسال میشود که نشان میدهد از آنها خواسته میشود مالکیت فایل را به عهده بگیرند.مالک بالقوه با ایجاد یا بهروزرسانی مجوز فایل خود، درخواست انتقال مالکیت را میپذیرد. مجوز باید شامل این تنظیمات باشد:
role=owner
وtransferOwnership=true
. اگر مالک احتمالی در حال ایجاد مجوز جدید باشد، یک اعلان ایمیلی به مالک قبلی ارسال میشود که نشان میدهد مالکیت منتقل شده است.
هنگامی که یک فایل منتقل می شود، نقش مالک قبلی به writer
کاهش می یابد.
چندین مجوز را با درخواست های دسته ای تغییر دهید
ما قویاً توصیه می کنیم از درخواست های دسته ای برای تغییر چندین مجوز استفاده کنید.
در زیر نمونه ای از انجام اصلاح دسته ای مجوز با کتابخانه سرویس گیرنده است.
جاوا
پایتون
Node.js
PHP
دات نت
موضوعات مرتبط
- محافظت از محتوای فایل
- با استفاده از کلیدهای منبع به فایلهای Drive مشترک دسترسی پیدا کنید
- نقش ها و مجوزها
هر فایل، پوشه و درایو مشترک Google Drive دارای منابع permissions
مرتبط است. هر منبع مجوز یک type
خاص ( user
، group
، domain
، anyone
) و role
( owner
، organizer
، سازماندهنده fileOrganizer
، writer
، commenter
، reader
) را مشخص میکند. به عنوان مثال، یک فایل ممکن است مجوزی داشته باشد که به یک کاربر خاص ( type=user
) دسترسی فقط خواندنی ( role=reader
) می دهد در حالی که مجوز دیگری به اعضای یک گروه خاص ( type=group
) امکان اضافه کردن نظر به یک فایل را می دهد. role=commenter
).
برای فهرست کامل نقشها و عملیاتهای مجاز هر کدام، به نقشها و مجوزها مراجعه کنید.
سناریوهایی برای به اشتراک گذاری منابع Drive
پنج نوع مختلف سناریوهای اشتراکگذاری وجود دارد:
برای اشتراکگذاری فایل در My Drive، کاربر باید
role=writer
یاrole=owner
داشته باشد.اگر مقدار بولی
writersCanShare
برای فایل رویfalse
تنظیم شده باشد، کاربر بایدrole=owner
داشته باشد.اگر کاربر دارای
role=writer
دسترسی موقتی داشته باشد که توسط تاریخ و زمان انقضا کنترل می شود، نمی تواند فایل را به اشتراک بگذارد. برای اطلاعات بیشتر، به تنظیم تاریخ انقضا برای محدود کردن دسترسی به فایل مراجعه کنید.
برای اشتراکگذاری یک پوشه در My Drive، کاربر باید
role=writer
یاrole=owner
داشته باشد.اگر مقدار بولی
writersCanShare
برای فایل رویfalse
تنظیم شده باشد، کاربر بایدrole=owner
مجاز تری داشته باشد.دسترسی موقت (با تاریخ و زمان انقضا) در پوشههای My Drive با
role=writer
مجاز نیست. برای اطلاعات بیشتر، به تنظیم تاریخ انقضا برای محدود کردن دسترسی به فایل مراجعه کنید.
برای اشتراکگذاری فایل در درایو مشترک، کاربر باید
role=writer
،role=fileOrganizer
یاrole=organizer
داشته باشد.- تنظیم
writersCanShare
برای موارد موجود در درایوهای مشترک اعمال نمی شود. طوری رفتار می شود که انگار همیشه رویtrue
تنظیم شده است.
- تنظیم
برای اشتراک گذاری یک پوشه در درایو مشترک، کاربر باید
role=organizer
داشته باشد.- اگر محدودیت
sharingFoldersRequiresOrganizerPermission
در درایو مشترک رویfalse
تنظیم شود، کاربران باrole=fileOrganizer
می توانند پوشه ها را در آن درایو مشترک به اشتراک بگذارند.
- اگر محدودیت
برای مدیریت عضویت درایو مشترک، کاربر باید
role=organizer
داشته باشد. فقط کاربران و گروه ها می توانند عضو درایوهای مشترک باشند.
برای محدود کردن دسترسی به فایل، تاریخ انقضا تعیین کنید
وقتی با افراد روی پروژهای حساس کار میکنید، ممکن است بخواهید پس از مدتی دسترسی آنها را به فایلهای خاصی در Drive محدود کنید. برای فایلهای My Drive، میتوانید تاریخ انقضا را برای محدود کردن یا حذف دسترسی به آن فایل تعیین کنید.
برای تنظیم تاریخ انقضا:
از متد
create()
در منبعpermissions
استفاده کنید و فیلدexpirationTime
(همراه با سایر فیلدهای مورد نیاز) را تنظیم کنید. برای اطلاعات بیشتر، به ایجاد مجوز مراجعه کنید.از متد
update()
در منبعpermissions
استفاده کنید و قسمتexpirationTime
(همراه با سایر فیلدهای مورد نیاز) را تنظیم کنید. برای اطلاعات بیشتر، به تغییر مجوزها مراجعه کنید.
فیلد expirationTime
زمانی را نشان می دهد که مجوز با استفاده از RFC 3339 date-time منقضی می شود. زمان انقضا دارای محدودیت های زیر است:
- آنها را فقط می توان روی مجوزهای کاربر و گروه تنظیم کرد.
- زمان باید در آینده باشد.
- زمان در آینده نمی تواند بیش از یک سال باشد.
برای اطلاعات بیشتر در مورد تاریخ انقضا، به مقالات زیر مراجعه کنید:
انتشار مجوز
لیست های مجوز برای یک پوشه به سمت پایین منتشر می شود و همه فایل ها و پوشه های فرزند مجوزها را از والدین به ارث می برند. هر زمان که مجوزها یا سلسله مراتب تغییر می کند، انتشار به صورت بازگشتی در تمام پوشه های تودرتو انجام می شود. به عنوان مثال، اگر یک فایل در یک پوشه وجود داشته باشد و سپس آن پوشه به پوشه دیگری منتقل شود، مجوزهای موجود در پوشه جدید به فایل منتشر می شود. اگر پوشه جدید به کاربر فایل نقش جدیدی مانند "نویسنده" بدهد، نقش قبلی آنها را لغو می کند.
برعکس، اگر یک فایل role=writer
از یک پوشه به ارث ببرد، و به پوشه دیگری منتقل شود که نقش "خواننده" را ارائه می دهد، فایل اکنون role=reader
را به ارث می برد.
مجوزهای ارثی را نمی توان از یک فایل یا پوشه در درایو مشترک حذف کرد. در عوض این مجوزها باید بر روی والد مستقیم یا غیرمستقیم که از آن به ارث رسیده اند تنظیم شوند. مجوزهای موروثی را می توان از موارد زیر "My Drive" یا "Shared with me" حذف کرد.
برعکس، مجوزهای ارثی را می توان روی یک فایل یا پوشه در My Drive لغو کرد. بنابراین، اگر یک فایل role=writer
از پوشه My Drive به ارث می برد، می توانید role=reader
روی فایل تنظیم کنید تا سطح مجوز آن را کاهش دهید.
قابلیت ها
منبع permissions
در نهایت توانایی کاربر فعلی برای انجام اقدامات روی یک فایل یا پوشه را تعیین نمی کند. در عوض، منبع files
شامل مجموعهای از فیلدهای capabilities
بولی است که برای نشان دادن اینکه آیا میتوان یک عمل را روی یک فایل یا پوشه انجام داد یا خیر. Google Drive API این فیلدها را بر اساس منبع مجوزهای کاربر فعلی مرتبط با فایل یا پوشه تنظیم می کند.
به عنوان مثال، هنگامی که الکس به برنامه شما وارد می شود و سعی می کند یک فایل را به اشتراک بگذارد، نقش الکس برای مجوزهای فایل بررسی می شود. اگر نقش به آنها اجازه می دهد تا یک فایل را به اشتراک بگذارند، capabilities
مربوط به فایل، مانند canShare
، نسبت به نقش پر می شود. اگر الکس بخواهد فایل را به اشتراک بگذارد، برنامه شما capabilities
را بررسی می کند تا مطمئن شود canShare
روی true
تنظیم شده است.
برای مثالی از capabilities
بازیابی فایل، به تأیید مجوزهای کاربر مراجعه کنید.
یک مجوز ایجاد کنید
هنگام ایجاد مجوز، دو فیلد زیر ضروری است:
type
:type
محدوده مجوز (user
،group
،domain
یاanyone
) را مشخص می کند. یک مجوز باtype=user
برای یک کاربر خاص اعمال می شود در حالی که مجوز باtype=domain
برای همه افراد در یک دامنه خاص اعمال می شود.role
: فیلدrole
عملیاتی را کهtype
می تواند انجام دهد را مشخص می کند. به عنوان مثال، یک مجوز باtype=user
وrole=reader
به کاربر خاصی دسترسی فقط خواندنی به فایل یا پوشه می دهد. یا، یک مجوز باtype=domain
وrole=commenter
به همه افراد موجود در دامنه اجازه میدهد به یک فایل نظر اضافه کنند. برای فهرست کامل نقشها و عملیاتهای مجاز هر کدام، به نقشها و مجوزها مراجعه کنید.
هنگامی که مجوزی ایجاد میکنید که در آن type=user
یا type=group
، باید یک emailAddress
نیز ارائه کنید تا کاربر یا گروه خاص را با مجوز مرتبط کنید.
وقتی مجوزی ایجاد میکنید که در آن type=domain
، باید domain
نیز برای مرتبط کردن یک دامنه خاص به مجوز ارائه دهید.
برای ایجاد مجوز:
- از متد
create()
با پارامتر مسیرfileId
برای فایل یا پوشه مرتبط استفاده کنید. - در بدنه درخواست،
type
وrole
مشخص کنید. - اگر
type=user
یاtype=group
، یکemailAddress
ارائه دهید. اگرtype=domain
، یکdomain
ارائه کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه ایجاد مجوز را نشان می دهد. پاسخ نمونه ای از یک منبع Permission
، از جمله permissionId
اختصاص داده شده را برمی گرداند.
درخواست کنید
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
پاسخ
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
از مخاطبان هدف استفاده کنید
مخاطبان هدف گروههایی از افراد هستند - مانند بخشها یا تیمها - که میتوانید به کاربران توصیه کنید موارد خود را با آنها به اشتراک بگذارند. میتوانید کاربران را تشویق کنید که موارد را با مخاطبان خاص یا محدودتر بهجای کل سازمانتان به اشتراک بگذارند. مخاطبان هدف می توانند به شما در بهبود امنیت و حریم خصوصی داده های خود کمک کنند و اشتراک گذاری مناسب را برای کاربران آسان تر کنند. برای اطلاعات بیشتر، درباره مخاطبان هدف رجوع کنید.
برای استفاده از مخاطبان هدف:
در کنسول Google Admin، به > دایرکتوری > مخاطبان هدف بروید.
منوبرای این کار باید با استفاده از یک حساب کاربری با امتیازات سرپرست فوق العاده وارد سیستم شوید.
در فهرست مخاطبان هدف ، روی نام مخاطب مورد نظر کلیک کنید. برای ایجاد یک مخاطب هدف، به ایجاد یک مخاطب هدف مراجعه کنید
شناسه منحصر به فرد را از URL مخاطب هدف کپی کنید:
https://admin.google.com/ac/targetaudiences/ ID
.یک مجوز با
type=domain
ایجاد کنید و فیلدdomain
را رویID .audience.googledomains.com
تنظیم کنید.
برای مشاهده نحوه تعامل کاربران با مخاطبان هدف، به تجربه کاربری برای اشتراکگذاری پیوند مراجعه کنید.
تمام مجوزهای یک فایل، پوشه یا درایو مشترک را بازیابی کنید
از متد list()
در منبع permissions
برای بازیابی همه مجوزهای یک فایل، پوشه یا درایو مشترک استفاده کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه دریافت همه مجوزها را نشان می دهد. پاسخ لیستی از مجوزها را برمی گرداند.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
پاسخ
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
مجوزهای کاربر را تأیید کنید
وقتی برنامه شما فایلی را باز میکند، باید قابلیتهای فایل را بررسی کند و رابط کاربری را طوری نمایش دهد که مجوزهای کاربر فعلی را منعکس کند. به عنوان مثال، اگر کاربر قابلیت canComment
روی فایل نداشته باشد، قابلیت نظر دادن باید در UI غیرفعال شود.
برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
برای بررسی قابلیت ها، متد get()
را در منبع files
با پارامتر مسیر fileId
و پارامتر fields
روی فیلد capabilities
تنظیم شده است. برای اطلاعات بیشتر در مورد بازگرداندن فیلدها با استفاده از پارامتر fields
، به بازگشت فیلدهای خاص برای یک فایل مراجعه کنید.
یک مثال نشان دهید
نمونه کد زیر نحوه تأیید مجوزهای کاربر را نشان می دهد. پاسخ لیستی از قابلیت هایی را که کاربر روی فایل دارد برمی گرداند. هر قابلیت مربوط به یک اقدام دقیق است که کاربر می تواند انجام دهد. برخی از فیلدها فقط برای موارد موجود در درایوهای مشترک پر شده اند.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
پاسخ
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
منبع نقش را برای فایلها و پوشههای درایو مشترک تعیین کنید
برای تغییر نقش در یک فایل یا پوشه، باید منبع نقش را بدانید. برای درایوهای مشترک، منبع یک نقش می تواند بر اساس عضویت در درایو مشترک، نقش روی یک پوشه یا نقش روی یک فایل باشد.
برای تعیین منبع نقش برای یک درایو مشترک، یا موارد درون آن درایو، متد get()
را در منبع permissions
با پارامترهای مسیر fileId
و permissionId
و پارامتر fields
را روی قسمت permissionDetails
تنظیم کنید.
برای پیدا کردن permissionId
، از متد list()
در منبع permissions
با پارامتر مسیر fileId
استفاده کنید. برای واکشی فیلد permissionDetails
در درخواست list
، پارامتر fields
را روی permissions/permissionDetails
تنظیم کنید.
این فیلد تمام مجوزهای فایل ارثی و مستقیم برای کاربر، گروه یا دامنه را برمیشمارد.
یک مثال نشان دهید
نمونه کد زیر نحوه تعیین منبع نقش را نشان می دهد. پاسخ permissionDetails
یک منبع permissions
را برمیگرداند. فیلد inheritedFrom
شناسه موردی را که مجوز از آن به ارث رسیده است را ارائه می دهد.
درخواست کنید
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
پاسخ
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
تغییر مجوزها
برای تغییر مجوزهای یک فایل یا پوشه، می توانید نقش اختصاص داده شده را تغییر دهید:
متد
update()
را در منبعpermissions
با پارامتر مسیرpermissionId
روی مجوز تغییر و پارامتر مسیرfileId
روی فایل، پوشه یا درایو مشترک مربوطه فراخوانی کنید. برای پیدا کردنpermissionId
، از متدlist()
در منبعpermissions
با پارامتر مسیرfileId
استفاده کنید.در درخواست،
role
جدید را مشخص کنید.
شما میتوانید به فایلها یا پوشههای جداگانه در درایو مشترک مجوز بدهید، حتی اگر کاربر یا گروه قبلاً عضو آن باشد. به عنوان مثال، Alex دارای role=commenter
به عنوان بخشی از عضویت خود در یک درایو مشترک است. با این حال، برنامه شما میتواند به Alex role=writer
برای فایلی در درایو مشترک اعطا کند. در این حالت، چون نقش جدید مجازتر از نقشی است که از طریق عضویت آنها اعطا شده است، مجوز جدید به نقش مؤثر پرونده یا پوشه تبدیل می شود.
یک مثال نشان دهید
نمونه کد زیر نحوه تغییر مجوزهای یک فایل یا پوشه از نظر دهنده به نویسنده را نشان می دهد. پاسخ نمونه ای از یک منبع permissions
را برمی گرداند.
درخواست کنید
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
پاسخ
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
پیشنهادهای دسترسی معلق را فهرست و حل کنید
پیشنهاد دسترسی ، پیشنهادی است از سوی درخواستکننده به تأییدکننده برای اعطای دسترسی گیرنده به یک مورد Drive.
یک تأییدکننده میتواند همه پیشنهادات دسترسی حلنشده در فایلهای Drive را بررسی کرده و روی آنها عمل کند. این بدان معناست که شما می توانید با پرس و جوی برنامه نویسی برای پیشنهادهای دسترسی و سپس حل آنها، روند تأیید را سرعت بخشید. همچنین اجازه می دهد تا پیشنهادات را به صورت مجموع توسط یک تایید کننده مشاهده کند.
Drive API منبع accessproposals
فراهم می کند تا بتوانید پیشنهادات دسترسی معلق را مشاهده و حل کنید. روشهای منبع accessproposals
روی فایلها، پوشهها، فایلهای موجود در درایو مشترک کار میکنند اما روی درایو مشترک کار نمیکنند .
شرایط زیر برای دسترسی به پیشنهادات خاص است:
- درخواست کننده : کاربری که پیشنهاد دسترسی به یک مورد Drive را آغاز می کند.
- گیرنده : کاربری که در صورت اعطای پیشنهاد دسترسی، مجوزهای اضافی روی یک فایل دریافت می کند. اغلب اوقات گیرنده همان درخواست کننده است اما نه همیشه.
- تایید کننده : کاربری که مسئول تایید (یا رد) پیشنهاد دسترسی است. این معمولاً به این دلیل است که آنها مالک سند هستند یا توانایی اشتراک گذاری سند را دارند.
فهرست پیشنهادهای دسترسی در انتظار
برای فهرست کردن همه پیشنهادات دسترسی معلق روی یک آیتم Drive، متد list()
را در منبع accessproposals
فراخوانی کنید و پارامتر مسیر fileId
را وارد کنید.
فقط تأییدکنندگان یک فایل میتوانند پیشنهادهای معلق را در یک فایل فهرست کنند. تایید کننده کاربری با قابلیت can_approve_access_proposals
در فایل است. اگر درخواست کننده تایید کننده نباشد، یک لیست خالی برگردانده می شود. برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
بدنه پاسخ متشکل از یک شی AccessProposal
است که فهرستی از پیشنهادات دسترسی حل نشده در فایل را نشان می دهد.
شی AccessProposal
شامل اطلاعات مربوط به هر پیشنهاد مانند درخواست کننده، گیرنده و پیامی است که درخواست کننده اضافه کرده است. همچنین شامل یک شی AccessProposalRoleAndView
است که role
پیشنهادی درخواست کننده را با یک view
گروه بندی می کند. از آنجایی که role
یک فیلد تکراری است، ممکن است چندین مورد برای هر پیشنهاد وجود داشته باشد. برای مثال، یک پروپوزال ممکن است یک شی AccessProposalRoleAndView
از role=reader
و view=published
، به علاوه یک شی AccessProposalRoleAndView
اضافی با فقط مقدار role=writer
داشته باشد. برای اطلاعات بیشتر، مشاهده ها را ببینید.
برای سفارشی کردن صفحه بندی یا فیلتر کردن پیشنهادهای دسترسی، پارامترهای پرس و جو زیر را ارسال کنید:
pageToken
: یک نشانه صفحه، دریافت شده از یک تماس فهرست قبلی. این نشانه را برای بازیابی صفحه بعدی ارائه دهید.pageSize
: حداکثر تعداد پیشنهادهای دسترسی برای بازگشت در هر صفحه.
پیشنهادات دسترسی معلق را حل کنید
برای حل و فصل همه پیشنهادات دسترسی معلق روی یک آیتم Drive، متد resolve()
را در منبع accessproposals
فراخوانی کنید و پارامترهای مسیر fileId
و proposalId
را بگنجانید.
متد resolve()
شامل یک پارامتر پرس و جوی action
است که نشان دهنده اقدامی است که باید روی پیشنهاد انجام شود. شی Action
تغییر حالت پیشنهاد را ردیابی می کند تا بدانیم آیا پذیرفته یا رد شده است.
متد resolve()
همچنین شامل پارامترهای پرس و جو اختیاری role
و view
است. تنها نقش های پشتیبانی شده writer
، commenter
و reader
هستند. اگر نقش مشخص نشده باشد، به طور پیشفرض روی reader
قرار میگیرد. یک پارامتر پرس و جو اختیاری اضافی send_notification
به شما امکان می دهد در صورت قبول یا رد پیشنهاد، یک اعلان ایمیلی برای درخواست کننده ارسال کنید.
درست مانند متد list()
، کاربرانی که پروپوزال را حل می کنند باید قابلیت can_approve_access_proposals
را در فایل داشته باشند. برای اطلاعات بیشتر در مورد capabilities
، به بخش قابلیت ها مراجعه کنید.
پیشنهادها با استفاده از همان الگوهای فهرست شده در زیر سناریوها برای اشتراک منابع Drive حل می شوند. اگر چندین پیشنهاد برای یک کاربر وجود داشته باشد، اما با نقش های متفاوت، موارد زیر اعمال می شود:
- اگر یک پیشنهاد پذیرفته شود و یکی رد شود، نقش پذیرفته شده برای مورد Drive اعمال می شود.
- اگر هر دو پیشنهاد به طور همزمان پذیرفته شوند، پروپوزال با مجوز بالاتر (به عنوان مثال،
role=writer
در مقابلrole=reader
) اعمال می شود. پیشنهاد دسترسی دیگر از مورد حذف می شود.
پس از ارسال پروپوزال به متد resolve()
، عمل اشتراک گذاری کامل می شود. AccessProposal
دیگر از طریق متد list()
بازگردانده نمی شود. پس از پذیرش پیشنهاد، کاربر باید از مجموعه permissions
برای به روز رسانی مجوزها در یک فایل یا پوشه استفاده کند. برای اطلاعات بیشتر، به بخش تغییر مجوزها مراجعه کنید.
دسترسی به یک فایل یا پوشه را لغو کنید
برای لغو دسترسی به یک فایل یا پوشه، متد delete()
را در منبع permissions
با fileId
و پارامترهای مسیر permissionId
که برای حذف مجوز تنظیم شده است، فراخوانی کنید.
برای موارد موجود در «درایو من»، امکان حذف یک مجوز ارثی وجود دارد. حذف یک مجوز ارثی دسترسی به مورد و موارد فرزند را در صورت وجود لغو می کند.
برای موارد موجود در درایو مشترک، مجوزهای موروثی قابل لغو نیستند. در عوض مجوز فایل یا پوشه والد را بهروزرسانی یا لغو کنید.
متد delete()
همچنین برای حذف مجوزهایی که مستقیماً به فایل یا پوشه درایو مشترک اعمال می شود استفاده می شود.
یک مثال نشان دهید
نمونه کد زیر نحوه لغو دسترسی با حذف permissionId
را نشان می دهد. در صورت موفقیت آمیز بودن، بدنه پاسخ خالی است. برای تایید حذف مجوز، از متد list()
در منبع permissions
با پارامتر مسیر fileId
استفاده کنید.
درخواست کنید
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
مالکیت فایل را به حساب Google Workspace دیگری در همان سازمان منتقل کنید
مالکیت فایلهای موجود در «My Drive» را میتوان از یک حساب Google Workspace به حساب دیگری در همان سازمان منتقل کرد. سازمانی که دارای یک درایو مشترک است، مالک فایلهای درون آن است. بنابراین، انتقال مالکیت برای فایلها و پوشهها در درایوهای مشترک پشتیبانی نمیشود. سازماندهندگان یک درایو مشترک میتوانند موارد را از آن درایو مشترک به «درایو من» خود منتقل کنند که مالکیت را به آنها منتقل میکند.
برای انتقال مالکیت یک فایل در My Drive، یکی از موارد زیر را انجام دهید:
یک مجوز فایل ایجاد کنید که به یک کاربر خاص (
type=user
) دسترسی مالک (role=owner
) را بدهد.مجوز یک فایل موجود را با
role=owner
به روز کنید و مالکیت را به کاربر مشخص شده منتقل کنید (transferOwnership=true
).
انتقال مالکیت فایل از یک حساب مصرف کننده به حساب دیگر
مالکیت فایل ها را می توان بین یک حساب مصرف کننده به حساب دیگر منتقل کرد. با این حال، Drive مالکیت یک فایل را بین دو حساب مصرفکننده منتقل نمیکند تا زمانی که مالک احتمالی صریحاً با انتقال موافقت کند. برای انتقال مالکیت فایل از یک حساب مصرف کننده به حساب دیگر:
مالک فعلی با ایجاد یا بهروزرسانی مجوز فایل مالک احتمالی، انتقال مالکیت را آغاز میکند. مجوز باید شامل این تنظیمات باشد:
role=writer
،type=user
وpendingOwner=true
. اگر مالک فعلی مجوزی برای مالک احتمالی ایجاد کند، یک اعلان ایمیلی برای مالک احتمالی ارسال میشود که نشان میدهد از آنها خواسته میشود مالکیت فایل را به عهده بگیرند.مالک بالقوه با ایجاد یا بهروزرسانی مجوز فایل خود، درخواست انتقال مالکیت را میپذیرد. مجوز باید شامل این تنظیمات باشد:
role=owner
وtransferOwnership=true
. اگر مالک احتمالی در حال ایجاد مجوز جدید باشد، یک اعلان ایمیلی به مالک قبلی ارسال میشود که نشان میدهد مالکیت منتقل شده است.
هنگامی که یک فایل منتقل می شود، نقش مالک قبلی به writer
کاهش می یابد.
چندین مجوز را با درخواست های دسته ای تغییر دهید
ما قویاً توصیه می کنیم از درخواست های دسته ای برای تغییر چندین مجوز استفاده کنید.
در زیر نمونه ای از انجام اصلاح دسته ای مجوز با کتابخانه سرویس گیرنده است.
جاوا
پایتون
Node.js
PHP
دات نت
موضوعات مرتبط
- محافظت از محتوای فایل
- با استفاده از کلیدهای منبع به فایلهای Drive مشترک دسترسی پیدا کنید
- نقش ها و مجوزها