يكون لكل ملف ومجلد ومساحة تخزين سحابي مشتركة في Google Drive موارد
أذونات مرتبطة. يحدّد كل مورد الإذن الخاص بـ type
معيّن (مستخدم أو مجموعة أو نطاق أو أي شخص) وrole
محدّد، مثل "معلِّق" أو "قارئ". على سبيل المثال، قد يملك ملف
إذنًا يمنح مستخدمًا معيّنًا (type=user
) إذن الوصول للقراءة فقط
(role=reader
)، بينما يمنح إذن آخر أعضاء مجموعة محدّدة
(type=group
) إمكانية إضافة تعليقات إلى ملف (role=commenter
).
للحصول على قائمة كاملة بالأدوار والعمليات التي يسمح بها كل منها، يُرجى الرجوع إلى الأدوار والأذونات.
سيناريوهات لمشاركة موارد Drive
هناك خمسة أنواع مختلفة من سيناريوهات المشاركة:
لمشاركة ملف في "ملفاتي"، يجب أن يكون لدى المستخدم
role=writer
أوrole=owner
.في حال ضبط القيمة المنطقية
writersCanShare
علىFalse
للملف، يجب أن يكون لدى المستخدمrole=owner
.إذا كان المستخدم الذي لديه إذن وصول "
role=writer
" لديه إذن وصول مؤقت محكوم بتاريخ ووقت انتهاء الصلاحية، لن يتمكّن من مشاركة الملف. للحصول على مزيد من المعلومات، يُرجى الاطّلاع على تحديد تاريخ انتهاء صلاحية للحد من الوصول إلى الملفات.
لمشاركة مجلد في "ملفاتي"، يجب أن يكون لدى المستخدم
role=writer
أوrole=owner
.في حال ضبط القيمة المنطقية
writersCanShare
علىFalse
للملف، يجب أن يحصل المستخدم على السمةrole=owner
الأكثر تساهلاً.لا يُسمح بالوصول المؤقت (المحكوم بتاريخ ووقت انتهاء الصلاحية) إلى مجلدات "ملفاتي" التي تتضمّن
role=writer
. لمزيد من المعلومات، يُرجى الاطّلاع على تحديد تاريخ انتهاء صلاحية للحد من الوصول إلى الملفات.
لمشاركة ملف في مساحة تخزين سحابي مشترَكة، يجب أن يكون لدى المستخدم
role=writer
أوrole=fileOrganizer
أوrole=organizer
.- لا ينطبق الإعداد
writersCanShare
على العناصر في مساحات التخزين السحابي المشتركة. ويتم التعامل مع هذه القيمة كما لو كانت مضبوطة دائمًا علىTrue
.
- لا ينطبق الإعداد
لمشاركة مجلد في مساحة تخزين سحابي مشترَكة، يجب أن يكون لدى المستخدم
role=organizer
.- في حال ضبط القيد
sharingFoldersRequiresOrganizerPermission
على مساحة التخزين السحابي المشتركة علىFalse
، يمكن للمستخدمين الذين لديهمrole=fileOrganizer
مشاركة المجلدات في مساحة التخزين السحابي المشتركة هذه.
- في حال ضبط القيد
لإدارة عضوية مساحة التخزين السحابي المشتركة، يجب أن يكون لدى المستخدم
role=organizer
. يمكن للمستخدمين والمجموعات فقط أن يكونوا أعضاء في مساحات التخزين السحابي المشتركة.
تحديد تاريخ انتهاء صلاحية للحدّ من إمكانية الوصول إلى الملفات
عند العمل مع مستخدمين في مشروع حسّاس، قد تحتاج إلى تقييد إمكانية وصولهم إلى ملفات معيّنة في Drive بعد فترة من الوقت. بالنسبة إلى الملفات في "ملفاتي"، يمكنك ضبط تاريخ انتهاء صلاحية لتقييد إمكانية الوصول إلى هذا الملف أو إزالتها.
لضبط تاريخ انتهاء الصلاحية:
- استخدِم الإجراء
permissions.create
واضبط الحقلpermissions.expirationTime
(مع الحقول الأخرى المطلوبة). لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء إذن. - استخدِم الإجراء
permissions.update
واضبط الحقلpermissions.expirationTime
(مع الحقول الأخرى المطلوبة). للمزيد من المعلومات، يُرجى الاطّلاع على تغيير الأذونات.
يشير الحقل expirationTime
إلى تاريخ انتهاء صلاحية الإذن باستخدام RFC 3339
date-time
. هناك القيود التالية على أوقات انتهاء الصلاحية:
- ولا يمكن ضبطها إلا على أذونات المستخدمين والمجموعات.
- يجب أن يكون الوقت في المستقبل.
- لا يمكن أن يكون هذا الوقت أكثر من سنة في المستقبل.
للحصول على مزيد من المعلومات عن تاريخ انتهاء الصلاحية، يُرجى الاطّلاع على المقالات التالية:
نشر الأذونات
يتم نشر قوائم الأذونات لمجلد للأسفل، وتكتسب جميع الملفات والمجلدات الفرعية الأذونات من المجلد الرئيسي. وعند تغيير الأذونات أو التسلسل الهرمي، يحدث النشر بشكل متكرر من خلال جميع المجلدات المتداخلة. على سبيل المثال، إذا كان هناك ملف في أحد المجلدات ثم تم نقل هذا المجلد داخل مجلد آخر، سيتم نشر الأذونات في المجلد الجديد إلى الملف. إذا منح المجلد الجديد لمستخدم الملف دورًا جديدًا، مثل "كاتب"، فسيتم إلغاء دوره القديم.
وبالعكس، إذا كان الملف يكتسب role=writer
من مجلد، وتم نقله إلى
مجلد آخر يوفر دور "القارئ"، يتم الآن اكتساب الملف
role=reader
.
لا يمكن إزالة الأذونات المكتسَبة من ملف أو مجلد في مساحة تخزين سحابي مشتركة. وبدلاً من ذلك، يجب تعديل هذه الأذونات على الأصل المباشر أو غير المباشر الذي تم اكتسابها منه. يمكن إزالة الأذونات المكتسَبة من العناصر ضمن "ملفاتي" أو "تمت مشاركتها معي".
وفي المقابل، يمكن إلغاء الأذونات المكتسَبة في ملف أو مجلد في "ملفاتي". لذلك، إذا كان الملف يتضمّن role=writer
من أحد مجلدات "ملفاتي"، يمكنك ضبط role=reader
في الملف لخفض مستوى الإذن الخاص به.
الإمكانات
لا يحدد مورد الأذونات في النهاية قدرة المستخدم الحالي على تنفيذ إجراءات في ملف أو مجلد.
بدلاً من ذلك، يحتوي مورد الملفات على مجموعة من حقول capabilities
المنطقية المستخدمة للإشارة إلى ما إذا كان يمكن تنفيذ الإجراء على ملف أو مجلد. تضبط واجهة برمجة تطبيقات Google Drive هذه الحقول استنادًا إلى
مورد أذونات المستخدم الحالي المرتبط بالملف أو المجلد.
على سبيل المثال، عندما يسجّل أليكس الدخول إلى تطبيقك ويحاول مشاركة ملف، يتم التحقق من دور أليكس بحثًا عن أذونات في الملف. إذا كان الدور يسمح له بمشاركة ملف، سيتم ملء
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
لربط نطاق محدّد بالإذن.
لإنشاء إذن، اتّبِع الخطوات التالية:
- استخدِم الإجراء
permissions.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"، انتقِل إلى رمز القائمة > الدليل > الجماهير المستهدفة.
الانتقال إلى صفحة "الجماهير المستهدفة"
يجب تسجيل الدخول باستخدام حساب لديه امتيازات مشرف متميّز لتنفيذ هذه المهمة.
في قائمة الجمهور المستهدف، انقر على اسم الجمهور المستهدف. لإنشاء جمهور مستهدف، يُرجى الاطّلاع على مقالة إنشاء جمهور مستهدف
انسخ المعرّف الفريد من عنوان URL للجمهور المستهدف:
https://admin.google.com/ac/targetaudiences/ID
.أنشِئ إذنًا من خلال
type=domain
، واضبط الحقلdomain
علىID.audience.googledomains.com
.
لعرض كيفية تفاعل المستخدمين مع الجماهير المستهدفة، راجع تجربة المستخدم في المشاركة باستخدام رابط .
استرداد جميع الأذونات لملف أو مجلد أو مساحة تخزين سحابي مشتركة
يمكنك استخدام طريقة permissions.list
لاسترداد جميع الأذونات
لملف أو مجلد أو مساحة تخزين سحابي مشتركة.
عرض مثال
يوضح الرمز النموذجي التالي كيفية الحصول على جميع الأذونات. وتعرض الاستجابة قائمة بالأذونات.
طلب
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
في الملف، يجب إيقاف إمكانية التعليق في واجهة المستخدم.
لمزيد من المعلومات عن capabilities
، يُرجى الاطّلاع على قسم الإمكانيات أعلاه.
وللتحقّق من الإمكانات، يمكنك استدعاء الدالة files.get
مع ضبط
المَعلمة 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 } }
تحديد مصدر الدور لملفات ومجلدات مساحة التخزين السحابي المشتركة
لتغيير الدور في ملف أو مجلد، يجب أن تعرف مصدر الدور. بالنسبة إلى مساحات التخزين السحابي المشتركة، يمكن أن يستند مصدر الدور إلى العضوية في مساحة التخزين السحابي المشتركة، أو الدور في مجلد، أو الدور في ملف.
لتحديد مصدر دور مساحة التخزين السحابي المشتركة أو العناصر ضمن مساحة التخزين السحابي هذه، استدعِ permissions.get
مع ضبط المَعلمة
fileId
وpermissionId
والمَعلمة fields
على الحقل
permissionDetails
. للعثور على permissionId
، استخدِم
permissions.list
مع fileId
. لجلب
الحقل permissionDetails
في طلب permissions.list
، اضبط
المَعلمة fields
على permissions/permissionDetails
.
يسرد هذا الحقل جميع أذونات الملفات المكتسَبة والمباشرة للمستخدم أو المجموعة أو النطاق.
عرض مثال
يعرض نموذج الرمز البرمجي التالي كيفية تحديد مصدر الدور. تعرض الاستجابة permissionDetails
لمورد Permission
. يقدّم الحقل 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
}
]
}
تغيير الأذونات
لتغيير الأذونات في ملف أو مجلد، يمكنك تغيير الدور المُسنَد إليه:
يمكنك استدعاء
permissions.update
معpermissionId
الإذن بالتغيير وfileId
للملف أو المجلد أو مساحة التخزين السحابي المشتركة المرتبطة. للعثور علىpermissionId
، استخدِمpermissions.list
معfileId
.حدِّد
role
الجديدة في الطلب.
يمكنك منح أذونات لملفات أو مجلدات فردية في مساحة تخزين سحابي مشتركة حتى إذا كان المستخدم أو المجموعة عضوًا من قبل. على سبيل المثال، يمتلك أليكس role=commenter
كجزء من اشتراكه في مساحة تخزين سحابي مشتركة. ومع ذلك، يمكن لتطبيقك منح أليكس
role=writer
لملف في مساحة تخزين سحابي مشتركة. في هذه الحالة، ولأن الدور الجديد أكثر تساهلاً من الدور الممنوح من خلال عضويتهم، يصبح الإذن الجديد الدور الفعال للملف أو المجلد.
عرض مثال
يعرض نموذج التعليمات البرمجية التالي كيفية تغيير الأذونات في ملف أو مجلد من معلِّق إلى كاتب. تعرض الاستجابة مثيلاً لمورد Permission
.
طلب
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"
}
إبطال إمكانية الوصول إلى ملف أو مجلد
لإبطال إذن الوصول إلى ملف أو مجلد، يمكنك استدعاء
delete
مع fileId
وpermissionId
لحذف الإذن.
بالنسبة إلى العناصر في "ملفاتي"، من الممكن حذف إذن موروث. يؤدي حذف إذن موروث إلى إبطال الوصول إلى العنصر والعناصر الفرعية، إن وجدت.
لا يمكن إبطال الأذونات المكتسَبة للعناصر في مساحة تخزين سحابي مشتركة. يمكنك تحديث الإذن في الملف أو المجلد الرئيسي أو إبطاله بدلاً من ذلك
تُستخدَم عملية delete
أيضًا لحذف الأذونات المطبَّقة مباشرةً على ملف أو مجلد على مساحة تخزين سحابي مشتركة.
عرض مثال
يعرض نموذج الرمز التالي كيفية إبطال الوصول من خلال حذف permissionId
. في حال نجاح هذا الإجراء، يكون نص الاستجابة فارغًا. للتأكّد من إزالة الإذن، استخدِم permissions.list
مع fileId
.
طلب
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
يمكنك نقل ملكية الملفات إلى حساب آخر على Google Workspace في المؤسسة نفسها.
يمكن نقل ملكية الملفات الحالية في "ملفاتي" من حساب Google Workspace إلى حساب آخر في المؤسسة نفسها. تمتلك المؤسسة التي تمتلك مساحة درايف مشتركة الملفات الموجودة داخلها. لذلك، لا تتوفّر إمكانية نقل الملكية للملفات والمجلدات في مساحات التخزين السحابي المشتركة. يمكن لمنظّمي مساحة التخزين السحابي المشتركة نقل العناصر من مساحة التخزين السحابي المشتركة هذه إلى "ملفاتي" الخاصة بهم والتي تنقل الملكية إليهم.
لنقل ملكية ملف في "ملفاتي"، يمكنك تنفيذ أحد الإجراءات التالية:
إنشاء إذن ملف يمنح مستخدمًا معيّنًا (
type=user
) إذن وصول المالك (role=owner
).عدِّل إذن ملف حالي من خلال
role=owner
وانقل الملكية إلى المستخدم المحدَّد (transferOwnership=true
).
نقل ملكية الملف من حساب مستهلك إلى آخر
يمكن نقل ملكية الملفات بين حساب مستهلك إلى آخر. ومع ذلك، لا تنقل خدمة Drive ملكية ملف بين حسابَي مستهلكين حتى يوافق المالك الجديد المحتمل بشكلٍ صريح على عملية النقل. لنقل ملكية الملف من حساب مستهلك إلى آخر:
يبدأ المالك الحالي نقل الملكية من خلال إنشاء أو تحديث إذن الملف الخاص بالمالك الجديد المحتمل. يجب أن يتضمن الإذن هذه الإعدادات:
role=writer
وtype=user
وpendingOwner=true
. إذا كان المالك الجديد ينشئ إذنًا للمالك المحتمل، يتم إرسال إشعار عبر البريد الإلكتروني إلى المالك الجديد المحتمل لإعلامه بأنه سيُطلب منه تولّي ملكية الملف.يقبل المالك الجديد طلب نقل الملكية من خلال إنشاء أو تحديث إذن الملف الخاص به. يجب أن يتضمن الإذن هذه الإعدادات:
role=owner
وtransferOwnership=true
. إذا كان المالك الجديد ينشئ إذنًا جديدًا، يتم إرسال إشعار عبر البريد الإلكتروني إلى المالك السابق للإشارة إلى أنّه تم نقل الملكية.
عند نقل ملف، يتم خفض مستوى دور المالك السابق إلى writer
.
تغيير أذونات متعددة من خلال الطلبات المجمّعة
ننصحك بشدة باستخدام الطلبات المجمّعة لتعديل أذونات متعددة.
في ما يلي مثال على إجراء تعديل على أذونات مجمّعة باستخدام مكتبة عميل.