يوضّح هذا المستند كيفية توفير إمكانية استخدام مساحات التخزين السحابي المشتركة في تطبيقك باستخدام Google Drive API.
تتّبع مساحات التخزين السحابي المشتركة نماذج مختلفة عن "ملفاتي" من حيث التنظيم والمشاركة والملكية. إذا كان تطبيقك سينشئ ملفات ويديرها في مساحات تخزين سحابي مشتركة، عليك توفير إمكانية استخدام مساحات التخزين السحابي المشتركة في تطبيقك، وتعتمد درجة تعقيد عملية التنفيذ على وظائف تطبيقك.
للبدء، يجب تضمين مَعلمة طلب البحث supportsAllDrives=true في طلباتك عندما ينفّذ تطبيقك العمليات التالية:
الإصدار 3 من Drive API
files.getfiles.listfiles.createfiles.updatefiles.copyfiles.deletechanges.listchanges.getStartPageTokenpermissions.listpermissions.getpermissions.createpermissions.updatepermissions.delete
الإصدار الثاني من Drive API
files.getfiles.listfiles.insertfiles.updatefiles.patchfiles.copyfiles.trashfiles.untrashfiles.deletefiles.touchchildren.insertparents.insertchanges.listchanges.getStartPageTokenchanges.getpermissions.listpermissions.getpermissions.insertpermissions.updatepermissions.patchpermissions.delete
تُعلم المَعلمة supportsAllDrives=true Google Drive بأنّ تطبيقك مصمّم للتعامل مع الملفات في مساحات التخزين السحابي المشتركة.
تتطلّب التطبيقات التي تقرأ الأذونات أو تعدّلها أو تتتبّع التغييرات أو تبحث في عدة مجموعات من النصوص إمكانات إضافية في مساحة التخزين السحابي المشترَكة. توضّح بقية هذا المستند التغييرات الإضافية المطلوبة لتنفيذ هذه المهام.
البحث عن محتوى في مساحة تخزين سحابي مشتركة
استخدِم طريقة list في مصدر files للعثور على ملفات المستخدمين في مساحات التخزين السحابي المشتركة. للبحث عن مساحة تخزين سحابي مشتركة، يُرجى الاطّلاع على البحث عن مساحات التخزين السحابي المشتركة.
تحتوي الطريقة list على مَعلمات طلب البحث التالية الخاصة بمساحة التخزين السحابي المشتركة:
استبدِل
driveIdبمعرّف مساحة التخزين السحابي المشتركة التي تريد البحث فيها.corpora: نص العناصر (الملفات أو المستندات) التي ينطبق عليها طلب البحث الأنواع المتوافقة هيuserوdomainوdriveوallDrives. استخدِمuserأوdriveبدلاً منallDrivesلتوفير الطاقة. يتم تلقائيًا ضبط مجموعة المستندات علىuser.includeItemsFromAllDrives: لتحديد ما إذا كان يجب تضمين العناصر في "ملفاتي" ومساحات التخزين السحابي المشتركة في النتائج. في حال عدم توفّرها أو ضبطها على "خطأ"، لن يتم عرض عناصر مساحة التخزين السحابي المشتركة.supportsAllDrives: ما إذا كان التطبيق الذي يقدّم الطلب يتيح استخدام كل من "ملفاتي" ومساحة التخزين السحابي المشتركة. إذا كانت القيمة false، لن يتم تضمين عناصر مساحة التخزين السحابي المشتركة في الردّ.
تخصّ أوضاع طلب البحث التالية مساحات Drive المشتركة:
includeItemsFromAllDrives |
corpora |
وصف طلب البحث |
|---|---|---|
true |
user |
يبحث عن الملفات التي وصل إليها المستخدم، بما في ذلك الملفات في مساحة التخزين السحابي المشتركة و"ملفاتي". |
true |
domain |
طلبات البحث عن الملفات التي تمت مشاركتها مع النطاق، بما في ذلك ملفات مساحة التخزين السحابي المشتركة و"ملفاتي" |
true |
drive |
يطلب البحث عن جميع العناصر في مساحة التخزين السحابي المشتركة المحدّدة. يجب تحديد driveId في الطلب. |
true |
allDrives |
يبحث عن الملفات التي وصل إليها المستخدم وجميع مساحات التخزين السحابي المشتركة التي يكون عضوًا فيها. يُرجى العِلم أنّ الردّ قد يتضمّن incompleteSearch:true، ما يشير إلى أنّه لم يتم البحث في بعض المدونات اللغوية لهذا الطلب. |
تعرض نماذج الرموز البرمجية التالية كيفية البحث عن الملفات في جميع مساحات التخزين السحابي المشتركة بالإضافة إلى "ملفاتي":
Python
files = []
page_token = None
while True:
response = drive_service.files().list(
q="mimeType='application/vnd.google-apps.folder'",
spaces='drive',
corpora='allDrives',
supportsAllDrives=True,
includeItemsFromAllDrives=True,
fields='nextPageToken, files(id, name)',
pageToken=page_token
).execute()
files.extend(response.get('files', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
Node.js
let files = [];
let pageToken = null;
do {
const response = await drive_service.files.list({
q: "mimeType='application/vnd.google-apps.folder'",
spaces: 'drive',
corpora: 'allDrives',
supportsAllDrives: true,
includeItemsFromAllDrives: true,
fields: 'nextPageToken, files(id, name)',
pageToken: pageToken
});
files = files.concat(response.data.files);
pageToken = response.data.nextPageToken;
} while (pageToken);
جافا
List<File> files = new ArrayList<>();
String pageToken = null;
do {
FileList result = driveService.files().list()
.setQ("mimeType='application/vnd.google-apps.folder'")
.setSpaces("drive")
.setCorpora("allDrives")
.setSupportsAllDrives(true)
.setIncludeItemsFromAllDrives(true)
.setFields("nextPageToken, files(id, name)")
.setPageToken(pageToken)
.execute();
files.addAll(result.getFiles());
pageToken = result.getNextPageToken();
} while (pageToken != null);
curl
curl -X GET \
'https://www.googleapis.com/drive/v3/files?corpora=allDrives&includeItemsFromAllDrives=true&supportsAllDrives=true&fields=nextPageToken%2Cfiles(id%2Cname)' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
استبدِل ACCESS_TOKEN برمز OAuth 2.0 الخاص بتطبيقك.
تتبُّع التغييرات في مساحة تخزين سحابي مشتركة
استخدِم طريقة list في المورد changes لتتبُّع التغييرات في مساحة تخزين سحابي مشتركة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة تتبُّع التغييرات التي يجريها المستخدمون وعلى الملفات في مساحات التخزين المشتركة.
تحتوي الطريقة list على مَعلمات طلب البحث التالية الخاصة بمساحة التخزين السحابي المشتركة:
driveId: مساحة التخزين السحابي المشتركة التي يتم عرض التغييرات منها. في حال تحديدها، تشير أرقام تعريف التغييرات إلى التغييرات التي أُجريت على العناصر داخل مساحة التخزين السحابي المشتركة والتي توفّر الحالة الحالية للملف. للإشارة إلى تغيير معيّن في مساحة تخزين سحابي مشتركة، يجب استخدام كل من رقم تعريف مساحة التخزين السحابي المشتركة ورقم تعريف التغيير كمعرّف.includeItemsFromAllDrives: تحديد ما إذا كان يجب تضمين ملفات مساحة التخزين السحابي المشتركة أو التغييرات في قائمة التغييرات
supportsAllDrives: تحدّد ما إذا كان التطبيق الذي يقدّم الطلب يتيح استخدام مساحات التخزين السحابي المشتركة. إذا كانت القيمة false، لن يتم عرض عناصر مساحة التخزين السحابي المشتركة، بما في ذلك مساحات التخزين السحابي المشتركة والملفات داخل مساحة التخزين السحابي المشتركة.
تخصّ أوضاع طلب البحث التالية مساحات Drive المشتركة:
includeItemsFromAllDrives |
driveId |
وصف طلب البحث |
|---|---|---|
true |
لا | تعكس التغييرات التعديلات التي أُجريت على الملفات داخل مساحات التخزين السحابي المشتركة أو خارجها والتي وصل إليها المستخدم، بالإضافة إلى التغييرات التي أُجريت على مساحات التخزين السحابي المشتركة التي يكون المستخدم عضوًا فيها. |
true |
نعم | تعكس التغييرات التغييرات التي تم إجراؤها على مساحة التخزين السحابي المشتركة المحدّدة والعناصر داخلها. |
تعرض عيّنات الرموز البرمجية التالية كيفية تتبُّع التغييرات في مساحة تخزين سحابي مشتركة:
Python
# 1. Get the start page token for the shared drive.
response = drive_service.changes().getStartPageToken(
supportsAllDrives=True,
driveId='SHARED_DRIVE_ID'
).execute()
start_page_token = response.get('startPageToken')
# 2. List changes starting from the page token.
response = drive_service.changes().list(
pageToken=start_page_token,
supportsAllDrives=True,
includeItemsFromAllDrives=True,
driveId='SHARED_DRIVE_ID'
).execute()
changes = response.get('changes', [])
Node.js
// 1. Get the start page token for the shared drive.
const tokenResponse = await drive_service.changes.getStartPageToken({
supportsAllDrives: true,
driveId: 'SHARED_DRIVE_ID'
});
const startPageToken = tokenResponse.data.startPageToken;
// 2. List changes starting from the page token.
const response = await drive_service.changes.list({
pageToken: startPageToken,
supportsAllDrives: true,
includeItemsFromAllDrives: true,
driveId: 'SHARED_DRIVE_ID'
});
const changes = response.data.changes;
جافا
// 1. Get the start page token for the shared drive.
StartPageToken tokenResult = driveService.changes().getStartPageToken()
.setSupportsAllDrives(true)
.setDriveId("SHARED_DRIVE_ID")
.execute();
String startPageToken = tokenResult.getStartPageToken();
// 2. List changes starting from the page token.
ChangeList changesResult = driveService.changes().list(startPageToken)
.setSupportsAllDrives(true)
.setIncludeItemsFromAllDrives(true)
.setDriveId("SHARED_DRIVE_ID")
.execute();
List<Change> changes = changesResult.getChanges();
curl
# 1. Get the start page token for the shared drive.
curl -X GET \
'https://www.googleapis.com/drive/v3/changes/startPageToken?supportsAllDrives=true&driveId=SHARED_DRIVE_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
# 2. List changes starting from the page token.
curl -X GET \
'https://www.googleapis.com/drive/v3/changes?pageToken=START_PAGE_TOKEN&supportsAllDrives=true&includeItemsFromAllDrives=true&driveId=SHARED_DRIVE_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
غيِّر القيم في السلسلة على الشكل التالي:
- SHARED_DRIVE_ID: رقم تعريف مساحة التخزين السحابي المشتركة.
- ACCESS_TOKEN: رمز OAuth 2.0 الخاص بتطبيقك.
- START_PAGE_TOKEN: الرمز المميّز لصفحة البداية في المجلد المشترك.
استبدِل SHARED_DRIVE_ID برقم تعريف مساحة التخزين السحابي المشتركة
تفعيل إمكانية استخدام مساحة التخزين السحابي المشتركة في واجهة مستخدم Drive
للوصول إلى محتوى مساحة التخزين السحابي المشتركة باستخدام واجهة مستخدم Drive، تأكَّد من وضع علامة في المربّع إتاحة مساحات التخزين السحابي المشتركة في علامة التبويب دمج واجهة مستخدم Drive ضمن Google Drive API في وحدة تحكّم Google Cloud. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط عملية دمج واجهة مستخدم Drive.
استخدام "أداة اختيار الملفات من Google" مع مساحات التخزين السحابي المشتركة
يتيح Google Picker إمكانية اختيار الملفات في مساحات التخزين السحابي المشتركة. للحصول على تفاصيل حول تفعيل إمكانية استخدام مساحات التخزين السحابي المشتركة وإضافة طرق عرض مساحات التخزين السحابي المشتركة في أداة الاختيار، يُرجى الاطّلاع على Google Picker API.