يتضمّن كل ملف ومجلد ومساحة تخزين سحابي مشتركة في Google Drive مراجع مرتبطة
permissions. يحدّد كل مرجع إذنًا خاصًا type (user وgroup وdomain وanyone) وrole (owner وorganizer وfileOrganizer وwriter وcommenter وreader). على سبيل المثال، قد يتضمّن ملف إذنًا يمنح مستخدمًا معيّنًا (type=user) إذن الوصول للقراءة فقط (role=reader)، بينما يمنح إذن آخر أعضاء مجموعة معيّنة (type=group) إمكانية إضافة تعليقات إلى ملف (role=commenter).
للحصول على قائمة كاملة بالأدوار والعمليات المسموح بها لكل دور، اطّلِع على الأدوار والأذونات.
كيفية نقل الأذونات
تنتقل الأذونات نزولاً من المجلدات الرئيسية إلى جميع العناصر الفرعية:
- الأذونات المطبَّقة تلقائيًا: يتم تلقائيًا تطبيق أذونات المجلد الرئيسي على جميع الملفات والمجلدات الفرعية.
- لا يمكن تقليلها على العناصر الفرعية: لا يمكنك إزالة إذن موروث أو تقليله على عنصر فرعي. يجب إجراء التغييرات على المجلد الرئيسي الأصلي، أو يجب أن يستخدم المجلد إعدادات الوصول المحدود.
- يمكن توسيع نطاقها على العناصر الفرعية: يمكن أن يمنح العنصر الفرعي دورًا أكثر تساهلاً، مثل منح إذن
role=writerلملف داخل مجلد يمتلك فيه المستخدم إذنrole=reader. - إعادة التقييم عند النقل: عند نقل عنصر إلى مجلد رئيسي جديد، تتم إعادة تقييم أذونات المجلد الرئيسي الجديد وتطبيقها على العنصر والعناصر التابعة له.
روابط الملفات والتحكّم في الوصول
عند مشاركة ملف أو مجلد مع مستخدم أو مجموعة محدّدة، لا يتغيّر عنوان URL الخاص بالوصول إلى الملف أو المجلد، ولا يتم إنشاء رابط فريد لكل مستخدم.
بدلاً من ذلك، يحتوي العنصر على رابط واحد وثابت استنادًا إلى fileId.
يتحكّم Drive في إمكانية الوصول من خلال تقييم قائمة التحكم بالوصول الخاصة بالعنصر. عندما يحاول مستخدم فتح رابط، يتحقّق Drive من هويته المصادَق عليها مقارنةً بقائمة التحكّم بالوصول. في حال تم إبطال إذن أو انتهت صلاحيته، تتم إزالة المستخدم من قائمة التحكّم بالوصول. إذا حاول المستخدم الانتقال إلى الرابط مرة أخرى، سيحظر Drive الوصول إليه.
فهم إمكانات الملفات
يحدّد مصدر permissions مَن يمكنه الوصول (قائمة التحكّم بالوصول)، ولكنّه لا يشير مباشرةً إلى ما إذا كان بإمكان المستخدم الحالي تنفيذ إجراء معيّن في واجهة مستخدم تطبيقك.
بدلاً من ذلك، يحتوي مورد files على مجموعة من حقول capabilities المنطقية (مثل canComment أو canShare أو canDelete) التي تحسبها Google Drive API بشكل ديناميكي استنادًا إلى دور المستخدم وإعدادات العنصر.
الحصول على إمكانات الملف
عند عرض واجهة مستخدم تطبيقك، تحقَّق من files.capabilities بدلاً من تحليل الأذونات مباشرةً:
- استدعِ طريقة
files.getمعfields=capabilities. لمزيد من المعلومات، يُرجى الاطّلاع على عرض حقول معيّنة. - استخدِم علامات القيمة المنطقية التي تم إرجاعها لتفعيل الإجراءات المقابلة أو إيقافها في واجهتك. على سبيل المثال، يمكنك إيقاف التعليق إذا كانت قيمة
canCommentهيfalse.
سيناريوهات لمشاركة مراجع Drive
يعرض الجدول التالي الأدوار والشروط المطلوبة لمشاركة مراجعات Drive في مواقع جغرافية مختلفة وأنواع عناصر مختلفة:
| الموقع الجغرافي | العنصر | الأدوار المطلوبة | القيود الأساسية |
|---|---|---|---|
| ملفاتي | الملف أو المجلد | owner أو writer |
يتطلّب owner إذا كان writersCanShare=false.تتطلّب إمكانية الوصول المؤقتة إلى المجلدات reader (راجِع تحديد تاريخ انتهاء الصلاحية). |
| مساحة تخزين سحابي مشتركة | ملف | organizer أو fileOrganizer أو writer |
يتم دائمًا التعامل مع writersCanShare على أنّه true. |
| مساحة تخزين سحابي مشتركة | مجلد | organizer |
يمكن أيضًا مشاركة fileOrganizer إذا كان sharingFoldersRequiresOrganizerPermission false. |
| مساحة تخزين سحابي مشتركة | العضوية | organizer |
ينطبق هذا الخصم على user أو group فقط (وليس على النطاقات). |
إدارة الأذونات
يلخّص الجدول التالي الطرق المتاحة في المرجع
permissions:
| الطريقة | نقطة النهاية لواجهة برمجة التطبيقات | المَعلمات الرئيسية | مراجع |
|---|---|---|---|
| الإنشاء | POST https://www.googleapis.com/drive/v3/files/{fileId}/permissions |
role أو type أو emailAddress أو domain |
permissions.create |
| الحصول على | GET https://www.googleapis.com/drive/v3/files/{fileId}/permissions/{permissionId} |
fields |
permissions.get |
| القائمة | GET https://www.googleapis.com/drive/v3/files/{fileId}/permissions |
pageSize، supportsAllDrives، pageToken |
permissions.list |
| تعديل | PATCH https://www.googleapis.com/drive/v3/files/{fileId}/permissions/{permissionId} |
role، allowFileDiscovery |
permissions.update |
| حذف | DELETE https://www.googleapis.com/drive/v3/files/{fileId}/permissions/{permissionId} |
supportsAllDrives |
permissions.delete |
إنشاء إذن
لمشاركة ملف أو مجلد أو مساحة تخزين سحابي مشتركة، استخدِم طريقة
create في مصدر
permissions مع fileId.
يؤدي إنشاء إذن إلى إضافة إدخال جديد في قائمة التحكم بالوصول إلى العنصر وعرض permissionId تم تعيينه.
في نص الطلب، أدخِل الحقول التالية:
role: مستوى الوصول الذي سيتم منحه (على سبيل المثال،readerأوcommenterأوwriter). للاطّلاع على قائمة كاملة، راجِع الأدوار والأذونات.type: نطاق المستفيد (userأوgroupأوdomainأوanyone)- معرّف الجهة المانحة (مطلوب استنادًا إلى
type):emailAddress: هذه السمة مطلوبة عندما تكون قيمةtypeهيuserأوgroup.domain: مطلوبة عندما تكون قيمةtypeهيdomain.
يوضّح نموذج الرمز البرمجي التالي كيفية إنشاء إذن. تعرض الاستجابة مثيلاً لمورد permissions، بما في ذلك permissionId المعيّن.
الطلب
POST https://www.googleapis.com/drive/v3/files/FILE_ID/permissions{ "role": "commenter", "type": "user", "emailAddress": "alex@altostrat.com" }
الردّ
{
"kind": "drive#permission",
"id": "PERMISSION_ID",
"type": "user",
"role": "commenter"
}المشاركة مع شرائح الجمهور المستهدَفة
الجماهير المستهدفة هي مجموعات من الأشخاص، مثل الأقسام أو الفِرق، يمكنك اقتراحها للمستخدمين لمشاركة العناصر معها. يمكنك تشجيع المستخدمين على مشاركة العناصر مع جمهور مُعيَّن أو محدود بدلاً من المؤسسة بأكملها. يمكن أن تساعدك الجماهير المستهدفة في تحسين أمان بياناتك وخصوصيتها، وتسهيل مشاركتها بشكل مناسب.
للمشاركة مع جمهور مستهدَف، اضبط type=domain واضبط domain على <TARGET_AUDIENCE_ID>.audience.googledomains.com. للحصول على تفاصيل حول تحديد موقع الجماهير المستهدفة أو إنشائها في "وحدة تحكّم المشرف في Google"، اطّلِع على لمحة عن الجماهير المستهدفة.
لمعرفة كيفية تفاعل المستخدمين مع شرائح الجمهور المستهدَفة، اطّلِع على تجربة المستخدمين في ما يتعلّق بمشاركة الروابط.
الحصول على إذن
للحصول على إذن، استدعِ طريقة get على المورد permissions باستخدام مَعلمتَي المسار fileId وpermissionId. إذا كنت لا تعرف معرّف الإذن، عليك أولاً إدراج جميع الأذونات.
أذونات القائمة
لعرض قائمة بأذونات ملف أو مجلد أو مساحة تخزين سحابي مشتركة، استدعِ طريقة
list في مورد
permissions مع مَعلمة المسار
fileId المطلوبة.
يمكنك تضمين أيّ من مَعلمات طلب البحث الاختيارية التالية لتقسيم الردّ إلى صفحات أو فلترته:
pageSize(اختياري): الحدّ الأقصى لعدد الأذونات التي سيتم عرضها في كل صفحة. إذا لم يتم ضبطها للملفات في مساحة تخزين سحابي مشتركة، سيتم عرض 100 نتيجة كحد أقصى. إذا لم يتم ضبطها للملفات غير الموجودة في مساحة تخزين سحابي مشتركة، سيتم عرض القائمة بأكملها.
pageToken(اختياري): رمز مميّز للصفحة من طلب قائمة سابق لاسترداد الصفحة التالية.
supportsAllDrives(اختياري): ما إذا كان التطبيق الذي يطلب الإذن يتيح استخدام كل من "ملفاتي" ومساحات التخزين السحابي المشتركة.useDomainAdminAccess(اختياري): اضبط القيمة علىtrueلإصدار الطلب بصفتك مشرف نطاق. يتم منح المستخدم الذي أرسل الطلب إذن الوصول إذا كانت المَعلمةfileIdتشير إلى مساحة تخزين سحابي مشتركة وكان المستخدم مشرفًا على النطاق الذي تنتمي إليه مساحة التخزين السحابي المشتركة. لمزيد من المعلومات، يُرجى الاطّلاع على إدارة مساحات التخزين السحابي المشتركة بصفتك مشرف نطاق.includePermissionsForView(اختياري): أذونات العرض الإضافية التي سيتم تضمينها في الرد. يُسمح فقط بالقيمةpublished.fields(اختياري): الحقول المحدّدة التي سيتم عرضها في الردّ. تُرجع الدالةlistتلقائيًاidوtypeوkindوroleفقط. لعرض حقول إضافية (مثلpermissionDetails)، حدِّدها باستخدام هذه المَعلمة. لمزيد من المعلومات، يُرجى الاطّلاع على عرض حقول معيّنة.
تحديد مصدر الدور
لتغيير الدور في ملف أو مجلد، يجب معرفة مصدر الدور. بالنسبة إلى مساحات التخزين السحابي المشتركة، يمكن أن يستند مصدر الدور إلى العضوية في مساحة التخزين السحابي المشتركة أو الدور في مجلد أو الدور في ملف.
لتحديد مصدر الدور لمساحة تخزين سحابي مشتركة أو العناصر داخلها، استدعِ طريقة 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مع ضبط المَعلمةfileIdللمسار على الملف أو المجلد أو مساحة التخزين السحابي المشتركة المرتبطة، وضبط المَعلمةpermissionIdللمسار على الإذن المطلوب تغييره. للعثور علىpermissionId، استخدِم طريقةlistفي موردpermissionsمع مَعلمة المسارfileId.في الطلب، حدِّد
roleالجديد.
يمكنك منح أذونات في ملفات أو مجلدات فردية في مساحة تخزين سحابي مشتركة حتى إذا كان المستخدم أو المجموعة عضوًا فيها. على سبيل المثال، يملك "أحمد" role=commenter
كجزء من عضويته في مساحة تخزين سحابي مشتركة. ومع ذلك، يمكن لتطبيقك منح Alex
role=writer إذن الوصول إلى ملف في مساحة تخزين سحابي مشتركة. في هذه الحالة، وبما أنّ الدور الجديد
يمنح أذونات أكثر من الدور الممنوح من خلال الاشتراك، يصبح الإذن الجديد هو الدور الفعّال للملف أو المجلد.
يمكنك تطبيق التعديلات من خلال دلالات التصحيح، ما يعني أنّه يمكنك إجراء تعديلات جزئية على أحد المراجع. يجب ضبط الحقول التي تريد تعديلها في طلبك بشكل صريح. ستحتفظ أي حقول غير مضمّنة في الطلب بقيمها الحالية. لمزيد من المعلومات، يُرجى الاطّلاع على العمل باستخدام الموارد الجزئية.
بالإضافة إلى تغيير الأدوار، يمكنك أيضًا تعديل إمكانية العثور على عنصر عندما يكون الإذن type هو domain أو anyone. لإتاحة البحث عن ملف مشترك أو جعله غير مُدرَج، أدرِج الحقل المنطقي allowFileDiscovery في طلب التصحيح. يسمح ضبط هذا الخيار على true بظهور الملف في نتائج البحث للجمهور المحدّد، حتى إذا لم يتم تزويده بالرابط المباشر. لست بحاجة إلى حذف الإذن وإعادة إنشائه لتغيير هذا الإعداد.
يوضّح نموذج الرمز البرمجي التالي كيفية تغيير الأذونات في ملف أو مجلد من commenter إلى writer. تعرض الاستجابة مثيلاً لمورد permissions.
الطلب
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID/permissions/PERMISSION_ID
{
"role": "writer"
}الردّ
{
"kind": "drive#permission",
"id": "PERMISSION_ID",
"type": "user",
"role": "writer"
}تعديل أذونات متعددة باستخدام طلبات مجمّعة
لا تتوفّر إمكانية تعديل الأذونات بشكل متزامن على الملف أو المجلد أو مساحة التخزين السحابي المشتركة نفسها. ينطبق هذا الحدّ على جميع عمليات التغيير (مثل التعديل أو الحذف)، بغض النظر عمّا إذا كنت تعدّل الأذونات للمستلم نفسه أو لمستلمين مختلفين، وعمّا إذا كانت الطلبات صادرة من تطبيق واحد أو عدة مستخدمين.
يقيّم Drive أذونات أحد العناصر ويعدّلها كقائمة تحكّم بالوصول واحدة. تتسبّب العمليات المتزامنة في حدوث حالات تعارض حيث "يفوز آخر تعديل"،
ما قد يؤدي إلى استبدال تغييرات الأذونات بدون تنبيه أو إلى ظهور أخطاء
sharingRateLimitExceeded.
لتجنُّب حدوث تعارضات، نفِّذ تغييرات الأذونات على العنصر نفسه بالتسلسل، أو استخدِم طلبات مجمّعة لتعديل أذونات متعددة في طلب واحد.
في ما يلي مثال على إجراء تعديل مجمّع للأذونات باستخدام مكتبة برامج.
جافا
Python
Node.js
PHP
NET.
حذف إذن
لإبطال إذن الوصول إلى ملف أو مجلد، استخدِم طريقة delete في المورد permissions مع مَعلمتَي المسار fileId وpermissionId.
لا يمكن إبطال الأذونات المكتسبة مباشرةً على العناصر الفرعية. يمكنك تعديل الإذن أو حذفه في المجلد الرئيسي بدلاً من ذلك (أو استخدام إعدادات الوصول المحدود).
يُرجى العِلم أنّ إزالة إذن وصول مستخدم من عنصر رئيسي يؤدي فقط إلى إلغاء الأذونات المكتسبة من هذا العنصر الرئيسي. إذا تم منح المستخدم أيضًا أذونات مباشرة على عنصر فرعي، سيظل بإمكانه الوصول مباشرةً إلى هذا العنصر. للتأكّد من إزالة أحد الأذونات،
استخدِم الدالة list مع fileId.
تحديد تاريخ انتهاء الصلاحية
لمنح إذن وصول مؤقت إلى ملف أو مجلد، اضبط الحقل
expirationTime (RFC 3339 date-time) عند استدعاء الطريقتَين create أو update.
تنطبق القيود التالية على أوقات انتهاء الصلاحية:
- يمكن ضبطها فقط على أذونات
userوgroup(وليسdomainأوanyone). - يجب أن يكون الوقت في المستقبل، لمدة عام واحد كحد أقصى.
- بالنسبة إلى المجلدات، لا تتوفّر إمكانية الوصول المؤقت إلا لدور
reader.
مواضيع ذات صلة
- إدارة اقتراحات الوصول المعلّقة
- إدارة المجلدات ذات إذن الوصول المحدود والواسع
- نقل ملكية الملفات
- حماية محتوى الملف
- الوصول إلى ملفات Drive التي تمت مشاركتها باستخدام رابط من خلال مفاتيح الموارد
- الأدوار والأذونات