Google Drive API מאפשר לכם להעלות נתוני קבצים כשאתם יוצרים או מעדכנים File. במאמר יצירת קבצים שמכילים רק מטא-נתונים מוסבר איך ליצור קובץ שמכיל רק מטא-נתונים, כמו תיקייה.
יש שלושה סוגים של העלאות שאפשר לבצע:
העלאה פשוטה (
uploadType=media): משתמשים בסוג ההעלאה הזה כדי להעביר קובץ מדיה קטן (5MB או פחות) בלי לספק מטא-נתונים. כדי לבצע העלאה פשוטה, אפשר לעיין במאמר ביצוע העלאה פשוטה.העלאה מרובת חלקים (
uploadType=multipart): "השתמשו בסוג ההעלאה הזה כדי להעביר קובץ קטן (5MB או פחות) יחד עם מטא-נתונים שמתארים את הקובץ, בבקשה אחת. מידע נוסף על העלאה מרובת חלקים זמין במאמר ביצוע העלאה מרובת חלקים.העלאה שניתן להמשיך (
uploadType=resumable): משתמשים בסוג ההעלאה הזה לקבצים גדולים (מעל 5MB) וכשיש סיכוי גבוה להפרעה ברשת, למשל כשיוצרים קובץ מאפליקציה לנייד. העלאות שניתן להמשיך הן גם בחירה טובה לרוב האפליקציות, כי הן עובדות גם לקבצים קטנים בעלות מינימלית של בקשת HTTP אחת נוספת לכל העלאה. כדי לבצע העלאה שניתן להמשיך, אפשר לעיין במאמר הפעלת העלאה שניתן להמשיך.
ספריות הלקוח של Google API מטמיעות לפחות אחד מהסוגים האלה של העלאות. פרטים נוספים על אופן השימוש בכל אחד מהסוגים זמינים במסמכי העזרה של ספריית הלקוח.
שימוש ב-PATCH לעומת PUT
תזכורת: פועל ה-HTTP PATCH תומך בעדכון חלקי של משאב קובץ, ואילו פועל ה-HTTP PUT תומך בהחלפה מלאה של משאב. שימו לב: PUT
יכול להיות ששינויים שוברי תאימות יתרחשו כשמוסיפים שדה חדש למשאב קיים.
כשמעלים משאב קובץ, חשוב לפעול לפי ההנחיות הבאות:
- משתמשים בפועל HTTP שמתועד במאמרי העזרה של ה-API עבור הבקשה הראשונית של העלאה שניתן להמשיך, או עבור הבקשה היחידה של העלאה פשוטה או העלאה מרובת חלקים.
- אחרי שהבקשה מתחילה, משתמשים ב-
PUTבכל הבקשות הבאות להעלאה שניתן להמשיך. הבקשות האלה מעלות תוכן בלי קשר לשיטה שמופעלת.
ביצוע העלאה פשוטה
כדי לבצע העלאה פשוטה, משתמשים ב-method create במשאב files עם uploadType=media.
בדוגמה הבאה אפשר לראות איך לבצע העלאה פשוטה:
HTTP
יוצרים בקשת
POSTל-URI של ה-method/uploadעם פרמטר השאילתהuploadType=media:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=mediaמוסיפים את נתוני הקובץ לגוף הבקשה.
מוסיפים את כותרות ה-HTTP הבאות:
-
Content-Type. צריך להגדיר את סוג המדיה של ה-MIME של האובייקט שמעלים. -
Content-Length. צריך להגדיר את הערך למספר הבייטים שמעלים. אם משתמשים בקידוד העברה במקטעים, לא צריך להוסיף את הכותרת הזו.
-
שולחים את הבקשה. אם הבקשה תתבצע בהצלחה, השרת יחזיר את קוד הסטטוס
HTTP 200 OKיחד עם המטא-נתונים של הקובץ. {HTTP}
JavaScript
/**
* Uploads a file without metadata.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileSimple(file, accessToken) {
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=media',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': file.type,
},
body: file,
}
);
if (!response.ok) {
throw new Error(`Upload failed: ${response.statusText}`);
}
return response.json();
}
כשמבצעים העלאה פשוטה, נוצרים מטא-נתונים בסיסיים וחלק מהמאפיינים מוסקים מהקובץ, כמו סוג ה-MIME או modifiedTime. אפשר להשתמש בהעלאה פשוטה במקרים שבהם יש לכם קבצים קטנים ומטא-נתונים של קבצים לא חשובים.
ביצוע העלאה מרובת חלקים
בקשת העלאה מרובת חלקים מאפשרת להעלות מטא-נתונים ונתונים באותה בקשה. האפשרות הזו מתאימה אם הנתונים שאתם שולחים קטנים מספיק כדי שאפשר יהיה להעלות אותם שוב בשלמותם אם החיבור ייכשל.
כדי לבצע העלאה מרובת חלקים, משתמשים ב-method create במשאב files עם uploadType=multipart.
בדוגמה הבאה אפשר לראות איך לבצע העלאה מרובת חלקים:
Java
Python
Node.js
JavaScript
/**
* Uploads a file along with its metadata.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileMultipart(file, accessToken) {
const metadata = {
name: file.name,
};
const boundary = 'foo_bar_baz';
const delimiter = `\r\n--${boundary}\r\n`;
const closeDelimiter = `\r\n--${boundary}--`;
const requestBody = new Blob([
`--${boundary}\r\n`,
'Content-Type: application/json; charset=UTF-8\r\n\r\n',
JSON.stringify(metadata),
delimiter,
`Content-Type: ${file.type}\r\n\r\n`,
file,
closeDelimiter,
]);
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': `multipart/related; boundary=${boundary}`,
},
body: requestBody,
}
);
if (!response.ok) {
throw new Error(`Upload failed: ${response.statusText}`);
}
return response.json();
}
PHP
.NET
HTTP
יוצרים בקשת
POSTל-URI של ה-method/uploadעם פרמטר השאילתהuploadType=multipart:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart
יוצרים את גוף הבקשה. הפורמט של גוף ההודעה צריך להיות בהתאם לסוג התוכן multipart/related של MIME שמופיע ב-RFC 2387, והוא מכיל שני חלקים:
- מטא-נתונים. המטא-נתונים צריכים להופיע ראשונים, וכותרת
Content-Typeשלהם צריכה להיותapplication/json;charset=UTF-8. מוסיפים את המטא-נתונים של הקובץ בפורמט JSON. - מדיה. הנתונים של המדיה צריכים להופיע שניים, וצריכה להיות להם כותרת
Content-Typeמכל סוג MIME. מוסיפים את נתוני הקובץ לקטע מדיה. מזהים כל חלק באמצעות מחרוזת גבול, שלפניה מופיעים שני מקפים. בנוסף, מוסיפים שני מקפים אחרי מחרוזת הגבול הסופית.
מוסיפים את כותרות ה-HTTP ברמה העליונה:
-
Content-Type. מגדירים את הערךmultipart/relatedוכוללים את מחרוזת הגבול שבה משתמשים כדי לזהות את החלקים השונים של הבקשה. לדוגמה:Content-Type: multipart/related; boundary=foo_bar_baz -
Content-Length. הערך שמוגדר הוא המספר הכולל של הבייטים בגוף הבקשה.
-
שולחים את הבקשה.
כדי ליצור או לעדכן רק את חלק המטא-נתונים, בלי הנתונים המשויכים, שולחים בקשת
POSTאוPATCHלנקודת הקצה של המשאב הרגיל:https://www.googleapis.com/drive/v3/filesאם הבקשה מצליחה, השרת מחזיר את קוד הסטטוסHTTP 200 OKיחד עם המטא-נתונים של הקובץ.- מטא-נתונים. המטא-נתונים צריכים להופיע ראשונים, וכותרת
כשיוצרים קבצים, צריך לציין סיומת קובץ בשדה name של הקובץ. לדוגמה, כשיוצרים קובץ JPEG של תמונה, אפשר לציין במטא-נתונים משהו כמו "name": "photo.jpg". קריאות חוזרות לשיטה get מחזירות את המאפיין fileExtension לקריאה בלבד, שמכיל את התוסף שצוין במקור בשדה name.
ביצוע העלאה שניתן להמשיך
העלאה שניתן להמשיך מאפשרת לכם להמשיך פעולת העלאה אחרי שכשל בתקשורת מפריע לזרימת הנתונים. בנוסף, העלאות שניתן להמשיך יכולות לצמצם את השימוש ברוחב הפס במקרה של תקלה ברשת, כי אין צורך להפעיל מחדש מההתחלה העלאות של קבצים גדולים.
העלאות שניתן להמשיך אותן שימושיות כשגודלי הקבצים עשויים להשתנות באופן משמעותי או כשקיימת מגבלת זמן קבועה לבקשות (כמו משימות ברקע במערכת הפעלה לנייד ובקשות מסוימות של App Engine). אפשר להשתמש בהעלאות שניתן להמשיך גם במצבים שבהם רוצים להציג סרגל התקדמות של ההעלאה.
העלאה שניתן להמשיך מורכבת מכמה שלבים ברמה גבוהה:
- שולחים את הבקשה הראשונית ומאחזרים את ה-URI של הסשן שניתן להמשיך.
- מעלים את הנתונים ועוקבים אחרי סטטוס ההעלאה.
- (אופציונלי) אם ההעלאה נקטעת, ממשיכים אותה.
שליחת הבקשה הראשונית
כדי להתחיל העלאה שניתן להמשיך, משתמשים בשיטה create במשאב files עם uploadType=resumable.
HTTP
יוצרים בקשת
POSTל-URI של ה-method/uploadעם פרמטר השאילתהuploadType=resumable:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=resumableאם בקשת ההפעלה מצליחה, התשובה כוללת קוד סטטוס
200 OKשל HTTP. בנוסף, היא כוללת כותרתLocationשמציינת את ה-URI של הסשן שניתן להמשיך:HTTP/1.1 200 OK Location: https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable&upload_id=xa298sd_sdlkj2 Content-Length: 0שומרים את ה-URI של הסשן שניתן להמשיך כדי להעלות את נתוני הקובץ ולשאול על סטטוס ההעלאה. התוקף של ה-URI של סשן שניתן להמשיך יפוג תוך שבוע.
כדי לעדכן קובץ קיים, משתמשים ב-
PATCH.אם יש לכם מטא-נתונים לקובץ, מוסיפים אותם לגוף הבקשה בפורמט JSON. אחרת, משאירים את גוף הבקשה ריק.
מוסיפים את כותרות ה-HTTP הבאות:
-
X-Upload-Content-Type. אופציונלי. הערך שמוגדר הוא סוג ה-MIME של נתוני הקובץ, שמועברים בבקשות הבאות. אם סוג ה-MIME של הנתונים לא מצוין במטא-נתונים או בכותרת הזו, האובייקט מוצג כ-application/octet-stream. -
X-Upload-Content-Length. אופציונלי. הערך שמוגדר הוא מספר הבייטים של נתוני הקובץ, שמועברים בבקשות הבאות. -
Content-Type. חובה אם יש לכם מטא-נתונים לקובץ. הערך שמוגדר הואapplication/json;charset=UTF-8. -
Content-Length. חובה, אלא אם משתמשים בקידוד של העברה במקטעים. הערך שמוגדר הוא מספר הבייטים בגוף הבקשה הראשונית.
-
שולחים את הבקשה. אם בקשת הפעלת הסשן מצליחה, התשובה כוללת קוד סטטוס
200 OK HTTPעם גוף ריק. בנוסף, התשובה כוללת כותרתLocationשמציינת את ה-URI של הסשן שניתן להמשיך. משתמשים ב-URI של הסשן שניתן להמשיך כדי להעלות את נתוני הקובץ ולשאול על סטטוס ההעלאה. התוקף של ה-URI של סשן שניתן להמשיך יפוג אחרי שבוע.מעתיקים ושומרים את כתובת ה-URL של הסשן שאפשר להמשיך.
ממשיכים אל העלאת התוכן.
JavaScript
/**
* Initiates a resumable upload session and returns the session URI.
*
* @param {Blob|File} file The file to upload.
* @param {string} accessToken A valid OAuth 2.0 access token.
* @return {Promise<string>} The resumable session URI.
*/
async function initiateResumableUpload(file, accessToken) {
const metadata = {
name: file.name,
mimeType: file.type,
};
const response = await fetch(
'https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json; charset=UTF-8',
'X-Upload-Content-Type': file.type,
'X-Upload-Content-Length': file.size,
},
body: JSON.stringify(metadata),
}
);
if (!response.ok) {
throw new Error(`Failed to initiate upload: ${response.statusText}`);
}
return response.headers.get('Location');
}
העלאת התוכן
יש שתי דרכים להעלות קובץ באמצעות סשן שניתן להמשיך:
- העלאת תוכן בבקשה אחת: כדאי להשתמש בגישה הזו אם אפשר להעלות את הקובץ בבקשה אחת, אם אין מגבלת זמן קבועה לבקשה אחת, או אם לא צריך להציג את התקדמות ההעלאה. הגישה הזו היא הטובה ביותר כי היא דורשת פחות בקשות ומניבה ביצועים טובים יותר.
העלאת התוכן במספר מקטעים: כדאי להשתמש בגישה הזו אם אתם צריכים להפחית את כמות הנתונים שמועברת בבקשה אחת. יכול להיות שתצטרכו לצמצם את הנתונים שמועברים אם יש מגבלת זמן קבועה לבקשות ספציפיות, כמו במקרים מסוימים של בקשות App Engine. הגישה הזו שימושית גם אם אתם צריכים לספק אינדיקטור בהתאמה אישית כדי להציג את התקדמות ההעלאה.
HTTP – בקשה יחידה
- יוצרים
PUTבקשה ל-URI של הסשן שניתן להמשיך. - מוסיפים את נתוני הקובץ לגוף הבקשה.
- מוסיפים כותרת HTTP של Content-Length, שמוגדרת למספר הבייטים בקובץ.
- שולחים את הבקשה. אם בקשת ההעלאה הופסקה או אם מקבלים תשובה מסוג
5xx, אפשר להיעזר בהוראות שבקטע המשך של העלאה שהופסקה.
JavaScript – בקשה יחידה
/**
* Uploads the entire file in a single request using the session URI.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file to upload.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileSingleRequest(sessionUrl, file) {
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': file.size,
},
body: file,
});
if (!response.ok) {
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
}
return response.json();
}
HTTP – בקשות מרובות
יוצרים
PUTבקשה ל-URI של הסשן שניתן להמשיך.מוסיפים את נתוני החלק לגוף הבקשה. יוצרים מקטעים בגודל של כפולה של 256KB (256 x 1,024 בייטים), למעט המקטע האחרון שמשלים את ההעלאה. כדאי להגדיר את גודל המקטע לגדול ככל האפשר כדי שההעלאה תהיה יעילה.
מוסיפים את כותרות ה-HTTP הבאות:
-
Content-Length. הערך שמוגדר הוא מספר הבייטים בחלק הנוכחי. -
Content-Range. ההגדרה הזו קובעת אילו בייטים בקובץ שהעליתם יוצגו. לדוגמה,Content-Range: bytes 0-524287/2000000מראה שהעליתם את 524,288 הבייטים הראשונים (256 x 1024 x 2) בקובץ בגודל 2,000,000 בייטים.
-
שולחים את הבקשה ומעבדים את התגובה. אם בקשת ההעלאה הופסקה או אם מקבלים תשובה מסוג
5xx, אפשר להיעזר בהוראות שבקטע המשך של העלאה שהופסקה.חוזרים על שלבים 1 עד 4 לכל נתח שנותר בקובץ. משתמשים בכותרת
Rangeבתגובה כדי לקבוע איפה להתחיל את החלק הבא. אל תניחו שהשרת קיבל את כל הבייטים שנשלחו בבקשה הקודמת.
כשההעלאה של הקובץ מסתיימת, מקבלים את התשובה 200 OK או 201 Created עם כל המטא-נתונים שמשויכים למשאב.
JavaScript – בקשות מרובות
/**
* Uploads a file in chunks of a specified size.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file to upload.
* @param {number} chunkSize Chunk size in bytes (must be a multiple of 256 KB).
* @return {Promise<Object>} The uploaded file metadata.
*/
async function uploadFileChunked(sessionUrl, file, chunkSize = 1024 * 1024) {
let start = 0;
while (start < file.size) {
const end = Math.min(start + chunkSize, file.size);
const chunk = file.slice(start, end);
const chunkLength = end - start;
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': chunkLength,
'Content-Range': `bytes ${start}-${end - 1}/${file.size}`,
},
body: chunk,
});
if (response.status === 308) {
// 308 Resume Incomplete indicates chunk was received successfully.
start = end;
} else if (response.ok) {
// 200 OK or 201 Created indicates the upload is fully complete.
return response.json();
} else {
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
}
}
}
המשך העלאה שהופסקה
אם בקשת העלאה הופסקה לפני קבלת תשובה, או אם מקבלים תשובה מסוג 503
Service Unavailable, צריך להמשיך את ההעלאה שהופסקה.
HTTP
כדי לבקש את סטטוס ההעלאה, יוצרים בקשת
PUTריקה ל-URI של הסשן שאפשר להמשיך בו את ההעלאה.הוספת כותרת
Content-Rangeכדי לציין שהמיקום הנוכחי בקובץ לא ידוע. לדוגמה, אם אורך הקובץ הכולל הוא 2,000,000 בייט, צריך להגדיר את הערךContent-Rangeל-*/2000000. אם לא יודעים מה הגודל המלא של הקובץ, צריך להגדיר אתContent-Rangeל-*/*.שולחים את הבקשה.
עיבוד התשובה:
- התשובה
200 OKאו201 Createdמציינת שההעלאה הושלמה ולא צריך לבצע פעולה נוספת. - התשובה
308 Resume Incompleteמציינת שצריך להמשיך בהעלאת הקובץ. - התשובה
404 Not Foundמציינת שתוקף סשן ההעלאה פג וצריך להתחיל את ההעלאה מחדש.
- התשובה
אם קיבלתם תגובה
308 Resume Incomplete, צריך לעבד את הכותרתRangeשל התגובה כדי לקבוע אילו בייטים התקבלו בשרת. אם התשובה לא כוללת את הכותרתRange, המשמעות היא שלא התקבלו בייטים. לדוגמה, כותרתRangeעם הערךbytes=0-42מציינת ש-43 הבייטים הראשונים של הקובץ התקבלו, והמקטע הבא שיועלה יתחיל בבייט 44.עכשיו, אחרי שיודעים מאיפה צריך להמשיך את ההעלאה, ממשיכים להעלות את הקובץ החל מהבייט הבא. צריך לכלול כותרת
Content-Rangeכדי לציין איזה חלק מהקובץ אתם שולחים. לדוגמה,Content-Range: bytes 43-1999999מציין שאתם שולחים בייטים 44 עד 2,000,000.
JavaScript
/**
* Resumes an interrupted upload by querying the status and uploading remaining bytes.
*
* @param {string} sessionUrl The resumable session URI.
* @param {Blob|File} file The file being uploaded.
* @return {Promise<Object>} The uploaded file metadata.
*/
async function resumeUpload(sessionUrl, file) {
// 1. Query the upload status by sending an empty PUT request
const statusResponse = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Range': `bytes */${file.size}`,
},
});
if (statusResponse.ok) {
// Already completed
return statusResponse.json();
}
if (statusResponse.status !== 308) {
throw new Error(`Failed to query upload status: ${statusResponse.statusText}`);
}
// 2. Parse the Range header to determine received bytes
const rangeHeader = statusResponse.headers.get('Range');
let startOffset = 0;
if (rangeHeader) {
const parts = rangeHeader.split('-');
startOffset = parseInt(parts[1], 10) + 1;
}
// 3. Upload the remaining content of the file
const remainingChunk = file.slice(startOffset);
const response = await fetch(sessionUrl, {
method: 'PUT',
headers: {
'Content-Length': remainingChunk.size,
'Content-Range': `bytes ${startOffset}-${file.size - 1}/${file.size}`,
},
body: remainingChunk,
});
if (!response.ok) {
throw new Error(`Resume upload failed: ${response.statusText}`);
}
return response.json();
}
טיפול בשגיאות בהעלאת מדיה
כשמעלים מדיה, כדאי לפעול לפי השיטות המומלצות הבאות כדי לטפל בשגיאות:
- במקרה של שגיאות
5xx, צריך להמשיך או לנסות שוב להעלות קבצים שההעלאה שלהם נכשלה בגלל שיבושים בחיבור. מידע נוסף על טיפול בשגיאות5xxזמין במאמר שגיאות 500, 502, 503 ו-504. - אם מופיעות שגיאות
403 rate limit, צריך לנסות להעלות שוב. מידע נוסף על טיפול בשגיאות403 rate limitזמין במאמר שגיאה 403:rateLimitExceeded. - אם מתקבלות שגיאות
4xx(כולל403) במהלך העלאה שניתן להמשיך, צריך להפעיל מחדש את ההעלאה. השגיאות האלה מציינות שתוקף הסשן של ההעלאה פג, וצריך להפעיל אותו מחדש על ידי בקשת URI חדש של הסשן. התוקף של סשנים של העלאה יפוג גם כן אחרי שבוע של חוסר פעילות.
ייבוא לסוגים של Google Docs
כשיוצרים קובץ ב-Drive, יכול להיות שתרצו להמיר את הקובץ לסוג קובץ של Google Workspace, כמו Google Docs או Sheets. לדוגמה, יכול להיות שתרצו להמיר מסמך ממעבד התמלילים המועדף שלכם ל-Docs כדי ליהנות מהתכונות שלו.
כדי להמיר קובץ לסוג קובץ ספציפי של Google Workspace, צריך לציין את mimeType של Google Workspace כשיוצרים את הקובץ.
ההוראות הבאות מראות איך להמיר קובץ CSV לגיליון אלקטרוני של Google Workspace:
Java
Python
Node.js
PHP
.NET
כדי לבדוק אם המרה זמינה, צריך לבדוק את השדה importFormats של המשאב about לפני שיוצרים את הקובץ. המרות נתמכות זמינות באופן דינמי במערך הזה. חלק מפורמטי הייבוא הנפוצים הם:
| מאת | אל |
|---|---|
| Microsoft Word, OpenDocument Text, HTML, RTF, טקסט פשוט, Markdown | Google Docs |
| Microsoft Excel, OpenDocument Spreadsheet, CSV, TSV, טקסט פשוט | Google Sheets |
| Microsoft PowerPoint, OpenDocument Presentation | Google Slides |
| JPEG, PNG, GIF, BMP, PDF | Google Docs (התמונה מוטמעת במסמך) |
| טקסט פשוט (סוג MIME מיוחד), JSON | Google Apps Script |
כשמעלים וממירים מדיה במהלך update בקשה לקובץ Docs, Sheets או Slides, התוכן המלא של המסמך מוחלף.
כשממירים תמונה ל-Docs, Drive משתמש בזיהוי תווים אופטי (OCR) כדי להמיר את התמונה לטקסט. כדי לשפר את האיכות של אלגוריתם ה-OCR, צריך לציין את קוד השפה הרלוונטי של BCP
47 בפרמטר ocrLanguage.
הטקסט שחולץ יופיע במסמך לצד התמונה המוטמעת.
שימוש במזהה שנוצר מראש כדי להעלות קבצים
Drive API מאפשר לאחזר רשימה של מזהי קבצים שנוצרו מראש, שאפשר להשתמש בהם כדי ליצור, להעתיק ולהעלות משאבים. מידע נוסף זמין במאמר בנושא יצירת מזהים לשימוש בקבצים.
אם יש שגיאת שרת לא מוגדרת או פסק זמן, אפשר לנסות שוב להעלות את המזהים שנוצרו מראש. אם הפעולה על הקובץ מצליחה, ניסיונות חוזרים נוספים יחזירו קוד סטטוס 409 Conflict של HTTP, ולא ייצרו קבצים כפולים.
שימו לב שאי אפשר להשתמש במזהים שנוצרו מראש כדי ליצור קבצים ב-Google Workspace, למעט application/vnd.google-apps.drive-sdkוapplication/vnd.google-apps.folder סוגי MIME. באופן דומה, אין תמיכה בהעלאות שמתייחסות להמרה לפורמט קובץ של Google Workspace.
הגדרת טקסט שניתן להוספה לאינדקס עבור סוגי קבצים לא ידועים
המשתמשים יכולים להשתמש בממשק המשתמש של Drive כדי למצוא תוכן במסמך. אפשר גם להשתמש בשיטה list במשאב files ובשדה fullText כדי לחפש תוכן מהאפליקציה. מידע נוסף זמין במאמר חיפוש קבצים ותיקיות.
Drive יוצר באופן אוטומטי אינדקס של מסמכים לחיפוש כשהוא מזהה את סוג הקובץ, כולל מסמכי טקסט, קובצי PDF, תמונות עם טקסט וסוגים נפוצים אחרים. אם האפליקציה שומרת סוגים אחרים של קבצים (כמו ציורים, סרטונים וקיצורי דרך), אפשר לשפר את יכולת הגילוי שלהם על ידי הוספת טקסט שאפשר להוסיף לאינדקס בשדה contentHints.indexableText של הקובץ.
מידע נוסף על טקסט שאפשר להוסיף לאינדקס זמין במאמר בנושא ניהול מטא-נתונים של קבצים.