ממשק Google Drive API תומך בכמה סוגים של פעולות הורדה וייצוא, כמו שמופיע בטבלה הבאה:
| פעולות הורדה |
|
||||
| ייצוא פעולות |
|
לפני שמורידים או מייצאים תוכן של קובץ, צריך לוודא שהמשתמשים יכולים להוריד את הקובץ באמצעות השדה capabilities.canDownload במשאב files.
תיאורים של סוגי הקבצים שמוזכרים כאן, כולל קובצי blob וקובצי Google Workspace, מופיעים במאמר סוגי קבצים.
בהמשך המסמך מפורטות הוראות לביצוע הפעולות האלה של הורדה וייצוא.
הורדת תוכן של קובץ blob
כדי להוריד קובץ blob שמאוחסן ב-Drive, משתמשים בשיטה files.get עם המזהה של הקובץ להורדה ועם הפרמטר alt=media של כתובת ה-URL. הפרמטר alt=media של כתובת ה-URL מציין לשרת שמבוקשת הורדה של תוכן כפורמט תגובה חלופי.
פרמטר כתובת ה-URL alt=media הוא פרמטר מערכת שזמין בכל ממשקי ה-API ל-REST של Google. אם משתמשים בספריית לקוח של Drive API, לא צריך להגדיר את הפרמטר הזה באופן מפורש, כי השיטה של ספריית הלקוח מוסיפה את פרמטר כתובת ה-URL alt=media לבקשת ה-HTTP הבסיסית.
בדוגמאות הקוד הבאות אפשר לראות איך משתמשים במתודה files.get כדי להוריד קובץ:
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
- FILE_NAME: השם של קובץ הפלט.
הורדות של קבצים שהתחילו מהאפליקציה שלכם צריכות להיות מאושרות בהיקף שמאפשר גישת קריאה לתוכן הקובץ. לדוגמה, לאפליקציה שמשתמשת בהיקף drive.readonly.metadata אין הרשאה להוריד את תוכן הקובץ.
דוגמאות הקוד בספריית הלקוח משתמשות בהיקף הקבצים המוגבל drive שמאפשר למשתמשים להציג ולנהל את כל הקבצים ב-Drive. מידע נוסף על היקפי גישה ב-Drive זמין במאמר בחירת היקפי גישה ל-Google Drive API.
משתמשים עם הרשאות owner (לקבצים בתיקייה 'האחסון שלי') או עם הרשאות organizer (לקבצים בתיקיית אחסון שיתופי) יכולים להגביל את ההורדה באמצעות האובייקט DownloadRestrictionsMetadata. מידע נוסף זמין במאמר בנושא איך מונעים ממשתמשים להוריד, להדפיס או להעתיק את הקובץ.
קבצים שמזוהים כפוגעניים (כמו תוכנות מזיקות) ניתנים להורדה רק על ידי הבעלים של הקובץ.
בנוסף, צריך לכלול את פרמטר השאילתה get acknowledgeAbuse=true כדי לציין שהמשתמש אישר את הסיכון בהורדה של תוכנה לא רצויה או קבצים פוגעניים אחרים. האפליקציה צריכה להציג למשתמש אזהרה אינטראקטיבית לפני השימוש בפרמטר השאילתה הזה.
הורדה חלקית
הורדה חלקית היא הורדה של חלק מסוים של קובץ. כדי לציין את החלק בקובץ שרוצים להוריד, משתמשים בטווח בייטים עם הכותרת Range. לדוגמה:
Range: bytes=500-999
הורדת תוכן של קובץ blob בגרסה קודמת
אפשר להוריד רק גרסאות של תוכן בקובץ blob שסומנו כ'שמירה לתמיד'. כדי להוריד גרסה, קודם צריך להגדיר אותה כ'שמירה לתמיד'. מידע נוסף זמין במאמר ציון גרסאות שיש לשמור כדי למנוע מחיקה אוטומטית.
כדי להוריד את התוכן של קובצי blob בגרסה קודמת, משתמשים בשיטה revisions.get עם המזהה של הקובץ להורדה, המזהה של הגרסה ופרמטר כתובת ה-URL alt=media. הפרמטר של כתובת ה-URL alt=media מציין לשרת שמבוקשת הורדה של תוכן כפורמט תגובה חלופי. בדומה ל-files.get, ה-method revisions.get מקבל גם את פרמטר השאילתה האופציונלי acknowledgeAbuse ואת הכותרת Range. מידע נוסף זמין במאמר בנושא ניהול פעולות ממושכות.
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- REVISION_ID: המזהה של הגרסה להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
- FILE_NAME: השם של קובץ הפלט.
הורדת תוכן של קובץ blob בדפדפן
כדי להוריד את התוכן של קובצי Blob שמאוחסנים ב-Drive בדפדפן, במקום דרך ה-API, צריך להשתמש בשדה webContentLink של מקור המידע files. אם למשתמש יש גישת הורדה לקובץ,
מוחזר קישור להורדת הקובץ והתוכן שלו. אפשר להפנות את המשתמש לכתובת ה-URL הזו או להציע לו אותה כקישור שאפשר ללחוץ עליו.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ שרוצים לקבל את קישור ההורדה שלו.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
הורדת תוכן של קובץ blob באמצעות פעולות ממושכות
כדי להוריד את התוכן של קובצי blob באמצעות פעולות ארוכות טווח (LRO), משתמשים בשיטה files.download עם המזהה של הקובץ שרוצים להוריד. אפשר להגדיר את מזהה הגרסה.
זו הדרך היחידה להוריד קבצים של Google Vids. אם מנסים לייצא קבצים של Google Vids, מוצגת השגיאה fileNotExportable.
מידע נוסף זמין במאמר בנושא ניהול פעולות ממושכות.
curl
פקודת ה-curl הבאה מפעילה LRO ומחזירה תגובת JSON. כדי להוריד את הקובץ או לבצע שאילתה לגבי ה-LRO הזה, צריך לשלוח בקשה נוספת באמצעות המזהה שמוחזר כדי לקבל את כתובת ה-URL של התוכן. לאחר מכן, אפשר לשלוח בקשת curl סופית לכתובת ה-URL הזו כדי להוריד את הקובץ. מידע נוסף זמין במאמר בנושא ניהול פעולות ממושכות.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=video/mp4" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
ייצוא תוכן של מסמכים ב-Google Workspace
כדי לייצא תוכן בייטים של מסמך Google Workspace, משתמשים בשיטה files.export עם מזהה הקובץ לייצוא וסוג ה-MIME הנכון. התוכן המיוצא מוגבל ל-10MB.
בדוגמאות הקוד הבאות אפשר לראות איך להשתמש בשיטה files.export כדי לייצא מסמך Google Workspace בפורמט PDF:
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=application/pdf" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME.pdf"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
- FILE_NAME: השם של קובץ הפלט.
דוגמאות הקוד של ספריית הלקוח משתמשות בהיקף drive המוגבל שמאפשר למשתמשים להציג ולנהל את כל הקבצים ב-Drive. מידע נוסף על היקפי גישה ב-Drive זמין במאמר בחירת היקפי גישה ל-Google Drive API.
בדוגמאות הקוד מוגדר גם סוג ה-MIME של הייצוא כ-application/pdf. רשימה מלאה של כל סוגי ה-MIME לייצוא שנתמכים בכל מסמך של Google Workspace מופיעה במאמר סוגי MIME לייצוא של מסמכי Google Workspace.
ייצוא תוכן של מסמך Google Workspace בדפדפן
כדי לייצא תוכן של מסמך Google Workspace בדפדפן, משתמשים בשדה exportLinks של המשאב files. בהתאם לסוג המסמך, מוחזר קישור להורדת הקובץ והתוכן שלו לכל סוג MIME שזמין. אתם יכולים להפנות משתמש לכתובת URL או להציע לו קישור שאפשר ללחוץ עליו.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ שרוצים לקבל את קישור ההורדה שלו.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
ייצוא תוכן של מסמך Google Workspace בגרסה קודמת בדפדפן
כדי לייצא תוכן של מסמך Google Workspace בגרסה קודמת בדפדפן, צריך להשתמש בשיטה revisions.get עם מזהה הקובץ להורדה ומזהה השינוי כדי ליצור קישור לייצוא שממנו אפשר לבצע את ההורדה. אם למשתמש יש גישת הורדה לקובץ, מוחזר קישור להורדת הקובץ והתוכן שלו. אתם יכולים להפנות את המשתמש לכתובת ה-URL הזו או להציע אותה כקישור שאפשר ללחוץ עליו.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- REVISION_ID: המזהה של הגרסה להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.
ייצוא תוכן של מסמכים ב-Google Workspace באמצעות פעולות ארוכות טווח
כדי לייצא תוכן של מסמך Google Workspace באמצעות פעולות ארוכות טווח (LRO), משתמשים בשיטה files.download עם מזהה הקובץ להורדה ומזהה הגרסה. מידע נוסף זמין במאמר בנושא ניהול פעולות ממושכות.
curl
פקודת ה-curl הבאה מפעילה LRO ומחזירה תגובת JSON. כדי להוריד את הקובץ או לבצע שאילתה לגבי ה-LRO הזה, צריך לשלוח בקשה נוספת באמצעות המזהה שמוחזר כדי לקבל את כתובת ה-URL של התוכן. לאחר מכן, אפשר לשלוח בקשת curl סופית לכתובת ה-URL הזו כדי להוריד את הקובץ. מידע נוסף זמין במאמר בנושא ניהול פעולות ממושכות.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=MIME_TYPE&revisionId=REVISION_ID" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ להורדה.
- MIME_TYPE: סוג ה-MIME לייצוא.
- REVISION_ID: המזהה של הגרסה להורדה.
- ACCESS_TOKEN: טוקן הגישה שמעניק גישה ל-API.