Google Drive API תומך במספר דרכים למניעת שינוי של קבצים, כולל הגבלה על תוכן הקובץ ואיסור על האפשרות להוריד, להדפיס או להעתיק .
הגדרת קבצים לקריאה בלבד באמצעות הגבלות תוכן ב-Drive
אפשר להוסיף הגבלת תוכן לקובץ ב-Google Drive כדי למנוע ממשתמשים לבצע את הפעולות הבאות:
- שינוי השם
- ביצוע עריכות תוכן
- העלאת גרסה קודמת
- הוספה או שינוי של תגובות
החלת הגבלות תוכן היא מנגנון שמאפשר לפרסם פריט ב-Drive יוגדר לקריאה בלבד בלי לשנות את הגדרת הפריט להרשאות גישה. כלומר ולא הגבלת גישה. אמנם המשתמשים לא יכולים לשנות את תוכן הקובץ, אבל פעולות מותרות עדיין בהתאם לרמת גישה (לדוגמה, משתמש עם עם גישת עריכה, עדיין תוכלו להעביר פריט או לשנות את הרשאות השיתוף שלו).
כדי להוסיף או להסיר הגבלת תוכן בקובץ ב-Drive, המשתמש
חייבים להיות משויכים
הרשאות. לקובץ או לתיקייה ב-
'האחסון שלי' או אחסון שיתופי עם
capabilities.canModifyEditorContentRestriction
, צריך להיות לך role=writer
הוקצה. לקובץ או לתיקייה ב'אחסון שלי' או באחסון שיתופי עם
הגבלת תוכן ב-ownerRestricted
, עליך להיות הבעלים של הקובץ או
role=organizer
. כדי לצפות בפריט עם הגבלת תוכן, המשתמשים צריכים:
role=reader
ומעלה. רשימת התפקידים המלאה מופיעה בקטע תפקידים ו
הרשאות. כדי לשנות הרשאות של קובץ:
שינוי הרשאות.
אפשר להשתמש בשדה הבוליאני contentRestrictions.readOnly
בקובץ ה-
משאב files
להגדרה
הגבלת תוכן. חשוב לשים לב שהגדרת הגבלת תוכן בפריט
יחליף את הקיים.
תרחישים של הגבלות תוכן
הגבלת תוכן בפריט ב-Drive מסמנת למשתמשים אסור לשנות את התוכן. יכולות להיות לכך כמה סיבות:
- השהיית העבודה על מסמך משותף במהלך תקופות של בדיקה או ביקורת.
- הגדרת פריט למצב סופי, למשל 'אושר'.
- מניעת שינויים במהלך פגישה עם מידע רגיש.
- איסור על שינויים חיצוניים בתהליכי עבודה שמטפלים במערכות אוטומטיות.
- הגבלת פעולות העריכה על ידי Google Apps Script ותוספים של Google Workspace.
- הימנעות מעריכות מקריים של מסמך.
עם זאת, חשוב לשים לב שהגבלות תוכן יכולות לעזור בניהול התוכן, אבל במטרה למנוע ממשתמשים שיש להם הרשאות מספיקות להמשיך לעבוד על שימושי. בנוסף, זו לא דרך ליצור רשומה שלא ניתנת לשינוי. הגבלות התוכן ב-Drive ניתנות לשינוי, ולכן הגבלת התוכן לגבי פריט מסוים, לא בטוח שהפריט אף פעם לא ישתנה.
ניהול קבצים עם הגבלות תוכן
מסמכי Google Docs, Google Sheets ו-Google Slides, וגם את כל שאר הקבצים, יכול להכיל הגבלות תוכן.
הגבלת תוכן שחלה על פריט מונעת שינויים בשם ובתוכן שלו. כולל:
- תגובות והצעות (ב-Docs, ב-Sheets, שקפים וקבצים בינאריים)
- גרסאות של קובץ בינארי
- טקסט ועיצוב ב-Docs
- טקסט או נוסחאות ב-Sheets, פריסה של Sheets, ומכונות ב-Sheets
- כל התוכן ב-Slides, וגם הסדר והמספר שקפים
סוגי קבצים מסוימים לא יכולים להכיל הגבלת תוכן. הנה מספר דוגמאות:
- Google Forms
- Google Sites
- Google Drawings
- קיצורי דרך וקיצורי דרך של צד שלישי. אפשר לקרוא מידע נוסף במאמר יצירת לקובץ קיצור דרך לתוכן שמאוחסן אפליקציה וליצור קיצור דרך קובץ מ-Drive.
הוספה של הגבלת תוכן
כדי להוסיף הגבלת תוכן של קבצים, צריך להשתמש
files.update
עם
השדה contentRestrictions.readOnly
הוגדר בתור true
. הוספת reason
אופציונלי בשביל
מדוע אתם מוסיפים את ההגבלה, למשל "חוזה סופי". הבאים
דוגמת קוד שמראה איך להוסיף הגבלת תוכן:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set a content restriction on a file.
* @return{obj} updated file
**/
async function addContentRestriction() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
const contentRestriction = {
'readOnly': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
מחליפים את FILE_ID ב-fileId
של הקובץ שרוצים להפעיל.
לשנות.
כשמריצים את הקוד לדוגמה, התוכן מוגבל לקובץ ומוצג סמל נעילה (ממשק המשתמש של Google Drive (ממשק משתמש). הקובץ מוגדר כעת לקריאה בלבד.
) מופיע לצד שם הקובץ בתוךהסרה של הגבלת תוכן
כדי להסיר הגבלת תוכן של קובץ, צריך להשתמש בשיטה files.update
עם
השדה contentRestrictions.readOnly
שהוגדר הוא false
. דוגמת הקוד הבאה
הדרכה על הסרה של הגבלת תוכן:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(false));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': False}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Remove a content restriction on a file.
* @return{obj} updated file
**/
async function removeContentRestriction() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
const contentRestriction = {
'readOnly': False,
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
מחליפים את FILE_ID ב-fileId
של הקובץ שרוצים להפעיל.
לשנות.
כשמריצים את הקוד לדוגמה, הקובץ כבר לא מוגבל לצפייה בתוכן.
אפשר גם להשתמש בממשק המשתמש של Drive כדי להסיר הגבלת תוכן לאפשר עריכת תוכן (בתנאי שיש לכם את ההרשאות המתאימות). יש שתי פלטפורמות אפשרויות לעשות זאת:
ב-Drive, לוחצים לחיצה ימנית על הקובץ עם הגבלת תוכן לוחצים על ביטול הנעילה
.פותחים את הקובץ עם הגבלת התוכן ולוחצים על (מצב נעילה) > מבטלים את הנעילה של הקובץ.
איך בודקים אם יש הגבלת תוכן
כדי לבדוק אם יש הגבלת תוכן, משתמשים
files.get
עם
הוחזר שדה על ידי contentRestrictions
. דוגמת הקוד הבאה מראה איך
כדי לבדוק את הסטטוס של הגבלת התוכן:
Java
File response = driveService.files().get("FILE_ID").setFields("contentRestrictions").execute();
Python
response = drive_service.files().get(fileId="FILE_ID", fields = "contentRestrictions").execute();
Node.js
/**
* Get content restrictions on a file.
* @return{obj} updated file
**/
async function fetchContentRestrictions() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.get({
fileId: 'FILE_ID',
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
מחליפים את FILE_ID ב-fileId
של הקובץ שרוצים להפעיל.
לסמן.
כשמריצים את הקוד לדוגמה, ה-method מחזירה
ContentRestriction
משאב, אם קיים.
הוספת הגבלת תוכן שרק הבעלים של הקובץ יכולים לשנות
כדי להוסיף הגבלת תוכן של קבצים כך שרק הבעלים של הקבצים יוכלו להפעיל או להשבית את המנגנון:
משתמשים בשיטה files.update
עם
השדה הבוליאני contentRestrictions.ownerRestricted
מוגדר ל-true
.
דוגמת הקוד הבאה מראה איך להוסיף הגבלת תוכן לבעלי קובץ
בלבד:
Java
File updatedFile =
new File()
.setContentRestrictions(
ImmutableList.of(new ContentRestriction().setReadOnly(true).setOwnerRestricted(true).setReason("Finalized contract."));
File response = driveService.files().update("FILE_ID", updatedFile).setFields("contentRestrictions").execute();
Python
content_restriction = {'readOnly': True, 'ownerRestricted': True, 'reason':'Finalized contract.'}
response = drive_service.files().update(fileId="FILE_ID", body = {'contentRestrictions' : [content_restriction]}, fields = "contentRestrictions").execute();
Node.js
/**
* Set an owner restricted content restriction on a file.
* @return{obj} updated file
**/
async function addOwnerRestrictedContentRestriction() {
// Get credentials and build service
// TODO (developer) - Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
const contentRestriction = {
'readOnly': True,
'ownerRestricted': True,
'reason': 'Finalized contract.',
};
const updatedFile = {
'contentRestrictions': [contentRestriction],
};
try {
const response = await service.files.update({
fileId: 'FILE_ID',
resource: updatedFile,
fields: 'contentRestrictions',
});
return response;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
מחליפים את FILE_ID ב-fileId
של הקובץ שרוצים להפעיל.
לשנות.
כשמריצים את הקוד לדוגמה, הקובץ מוגבל על-ידי התוכן, והוא מוגדר רק כקובץ הבעלים יכולים להסיר אותו. אם הקובץ בבעלותך, יופיע סמל נעילה פעילה ( ממשק משתמש של Drive (ממשק משתמש). אם המיקום שאתם לא הבעלים, סמל המנעול מעומעם.
) לצד שם הקובץ בתוךכדי להסיר את הדגל ownerRestricted
, צריך להשתמש ב-method files.update
עם
השדה contentRestrictions.ownerRestricted
שהוגדר הוא false
.
יכולות של הגבלת תוכן
משאב files
מכיל
אוסף של שדות capabilities
בוליאניים המשמשים כדי לציין אם פעולה
שאפשר לבצע בקובץ.
הגבלות התוכן כוללות את הcapabilities
הבאים:
capabilities.canModifyEditorContentRestriction
: האם המשתמש הנוכחי יכולים להוסיף או לשנות הגבלת תוכן.capabilities.canModifyOwnerContentRestriction
: האם המשתמש הנוכחי יכולים להוסיף או לשנות הגבלת תוכן של בעלים.capabilities.canRemoveContentRestriction
: האם המשתמש הנוכחי יכול מסירים את הגבלת התוכן שהוחלו (אם קיימת).
מידע נוסף זמין במאמר הבא: יכולות.
דוגמה לאחזור קובץ capabilities
זמינה במאמר אימות משתמש
הרשאות.
למנוע ממשתמשים להוריד, להדפיס או להעתיק את הקובץ
אפשר להגביל את האופן שבו משתמשים עם הרשאות role=commenter
או role=reader
יכולים
להוריד, להדפיס ולהעתיק קבצים ב-Drive,
Docs, Sheets ו-Slides.
כדי להסיר את האפשרויות של הורדה, הדפסה והעתקה של קבצים, משתמשים
files.update
עם
השדה הבוליאני copyRequiresWriterPermission
הוגדר ל-true
.