תיקיות הן קבצים שמכילים רק מטא-נתונים, ואפשר להשתמש בהן כדי לארגן קבצים ב-Google Drive. המאפיינים שלהם הם:
- תיקייה היא קובץ עם סוג MIME
application/vnd.google-apps.folderואין לה סיומת. - אפשר להשתמש בכינוי
rootכדי להפנות לתיקיית הבסיס בכל מקום שבו מצוין מזהה קובץ.
מידע נוסף על מגבלות בתיקיות ב-Drive זמין במאמר מגבלות על קבצים ותיקיות.
במדריך הזה מוסבר איך לבצע כמה משימות בסיסיות שקשורות לתיקיות.
יצירת תיקייה
כדי ליצור תיקייה, משתמשים ב-method files.create() עם mimeType של application/vnd.google-apps.folder ו-name.
דוגמת הקוד הבאה מראה איך ליצור תיקייה באמצעות ספריית לקוח:
Java
Python
Node.js
PHP
.NET
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "FOLDER_NAME",
"mimeType": "application/vnd.google-apps.folder"
}'
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: הטוקן של האפליקציה מסוג OAuth 2.0.
- FOLDER_NAME: השם של התיקייה שרוצים ליצור.
יצירת קובץ בתיקייה ספציפית
כדי ליצור קובץ בתיקייה ספציפית, משתמשים בשיטה files.create() ומציינים את מזהה התיקייה במאפיין parents של הקובץ.
המאפיין parents מכיל את המזהה של תיקיית ההורה שמכילה את הקובץ.
אפשר להשתמש במאפיין parents כשיוצרים קבצים בתיקייה ברמה העליונה או בכל תיקייה אחרת.
לקובץ יכולה להיות רק תיקיית הורה אחת. אי אפשר לציין כמה הורים. אם לא מציינים את השדה parents, הקובץ ממוקם ישירות בתיקייה'האחסון שלי' של המשתמש.
בדוגמת הקוד הבאה אפשר לראות איך ליצור קובץ בתיקייה ספציפית באמצעות ספריית לקוח:
Java
Python
Node.js
PHP
.NET
curl
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "photo.jpg",
"parents": [
"FOLDER_ID"
]
}'
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: הטוקן של האפליקציה מסוג OAuth 2.0.
- FOLDER_ID: המזהה של התיקייה שבה רוצים ליצור את הקובץ.
העברת קבצים בין תיקיות
כדי להעביר קבצים, צריך לעדכן את המזהה של מאפיין parents.
כדי להוסיף או להסיר הורים לקובץ קיים, משתמשים בשיטה files.update() עם פרמטרים של שאילתה addParents ו-removeParents.
לקובץ יכולה להיות רק תיקיית הורה אחת. אי אפשר לציין כמה הורים.
בדוגמת הקוד הבאה אפשר לראות איך מעבירים קובץ בין תיקיות באמצעות ספריית לקוח:
Java
Python
Node.js
PHP
.NET
curl
curl -X PATCH 'https://www.googleapis.com/drive/v3/files/FILE_ID?addParents=NEW_PARENT_ID&removeParents=PREVIOUS_PARENT_ID' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
מחליפים את מה שכתוב בשדות הבאים:
- FILE_ID: המזהה של הקובץ שרוצים להעביר.
- NEW_PARENT_ID: המזהה של התיקייה שאליה רוצים להעביר את הקובץ.
- PREVIOUS_PARENT_ID: רשימה מופרדת בפסיקים של תיקיות האב שמהן רוצים להסיר את הקובץ.
- ACCESS_TOKEN: הטוקן של האפליקציה מסוג OAuth 2.0.
מגבלות על קבצים ותיקיות
יש מגבלות מסוימות על האחסון של קבצים ותיקיות ב-Drive.
מכסת פריטים למשתמש
כל משתמש יכול ליצור עד 500 מיליון פריטים בחשבון. כשהמכסה תיגמר, המשתמש לא יוכל יותר ליצור פריטים ב-Drive או להעלות אליו פריטים. הם עדיין יכולים לראות ולערוך פריטים קיימים. כדי ליצור קבצים מחדש, המשתמשים צריכים למחוק פריטים באופן סופי או להשתמש בחשבון אחר. מידע נוסף זמין במאמר בנושא העברה לאשפה או מחיקה של קבצים ותיקיות.
האובייקטים שנכללים במגבלה הזו הם:
- פריטים שהמשתמש יצר או העלה ב-Drive
- פריטים שהמשתמש יצר אבל עכשיו נמצאים בבעלות של מישהו אחר
- פריטים באשפה
- קיצורי דרך
- קיצורי דרך של צד שלישי
אובייקטים שלא נכללים במגבלה הזו:
- פריטים שנמחקו באופן סופי
- פריטים ששותפו עם המשתמש אבל נמצאים בבעלות של מישהו אחר
- פריטים שנמצאים בבעלות המשתמש אבל נוצרו על ידי מישהו אחר
ניסיון להוסיף יותר מ-500 מיליון פריטים יחזיר קוד סטטוס של HTTP activeItemCreationLimitExceeded.
חשוב לדעת: חשבונות שירות לא יכולים להיות הבעלים של קבצים. במקום זאת, הם צריכים להעלות קבצים ותיקיות לאחסון השיתופי, או להשתמש ב-OAuth 2.0 כדי להעלות פריטים בשם משתמש אנושי.
מגבלת הפריטים בתיקייה
בכל תיקייה בתיקיית 'האחסון שלי' של המשתמשים יש מגבלה של 500,000 פריטים. המגבלה הזו לא חלה על תיקיית הבסיס של 'האחסון שלי'. הפריטים שנכללים במגבלה הזו הם:
- תיקיות
- קבצים כל סוגי הקבצים, בלי קשר לבעלות על הקובץ.
- קיצורי דרך. נחשב כפריט יחיד בתיקייה, גם אם הפריט שאליו הוא מצביע לא נמצא בתיקייה הזו. מידע נוסף זמין במאמר בנושא יצירת קיצור דרך לקובץ ב-Drive.
- קיצורי דרך של צד שלישי. נספר כפריט יחיד בתיקייה, גם אם הפריט שאליו הוא מפנה לא נמצא בתיקייה הזו. מידע נוסף זמין במאמר בנושא יצירת קובץ קיצור דרך לתוכן שאוחסן באפליקציה.
מידע נוסף על מגבלות תיקיות זמין במאמר מגבלות על תיקיות ב-Google Drive.
מגבלת עומק התיקייה
בתיקיית'האחסון שלי' של משתמש יכולות להיות עד 100 רמות של תיקיות מקוננות. כלומר, אי אפשר לאחסן תיקיית צאצא בתיקייה שנמצאת ברמה עמוקה יותר מ-99. ההגבלה הזו חלה רק על תיקיות צאצא. מגבלה זו לא חלה על קובץ צאצא עם סוג MIME שונה מ-application/vnd.google-apps.folder.
לדוגמה, בתרשים הבא, אפשר להטמיע תיקייה חדשה בתוך תיקייה מספר 99, אבל לא בתוך תיקייה מספר 100. עם זאת, בתיקייה מספר 100 אפשר לאחסן קבצים כמו בכל תיקייה אחרת ב-Drive:
ניסיונות להוסיף יותר מ-100 רמות של תיקיות מחזירים תגובה עם קוד סטטוס של HTTP myDriveHierarchyDepthLimitExceeded.