يكون لكل ملف ومجلد ومساحة تخزين سحابي مشتركة في 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 المشتركة.
تحديد تاريخ انتهاء صلاحية للحدّ من إمكانية الوصول إلى الملفات
عند العمل مع مستخدمين في مشروع حسّاس، قد تحتاج إلى تقييد وصولهم إلى ملفات معيّنة في 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 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
لربط نطاق
معين بالإذن.
لإنشاء إذن، عليك اتّباع الخطوات التالية:
- استخدِم طريقة
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
.
تغيير أذونات متعددة باستخدام الطلبات المجمّعة
ننصحك بشدة باستخدام الطلبات المجمّعة لتعديل أذونات متعددة.
في ما يلي مثال على إجراء تعديل لأذونات مجمّعة باستخدام مكتبة برامج.