ביטול ההגדרה של שדה תווית בקובץ

בדף הזה מוסבר איך לבטל את ההגדרה של תווית Field בקובץ יחיד ב-Google Drive.

כדי להסיר מטא-נתונים מקובץ על ידי ביטול ההגדרה של תווית קובץ, משתמשים בשיטה files.modifyLabels. גוף הבקשה מכיל מופע של ModifyLabelsRequest לשינוי קבוצת התוויות בקובץ. הבקשה עשויה להכיל מספר שינויים שמיושמים באופן אטומי. כלומר, אם שינויים מסוימים לא תקינים, העדכון כולו ייכשל ולא תחול אף שינוי (שעשוי להיות תלוי).

השדה ModifyLabelsRequest מכיל מופע של LabelModification שינוי בתווית בקובץ. היא יכולה גם להכיל מופע של FieldModification, שהוא שינוי בשדה של תווית. כדי לבטל את הגדרת הערכים בשדה, צריך להגדיר את FieldModification.unsetValues ל-True.

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל את התוויות שנוספו או עודכנו על ידי הבקשה. הן קיימות באובייקט modifiedLabels מסוג Label.

דוגמה

דוגמת הקוד הבאה ממחישה איך להשתמש ב-fieldId וב-labelId כדי לבטל את הגדרת ערכי השדות ב-fileId המשויך. לדוגמה, אם תווית מכילה גם שדות טקסט וגם שדות משתמש, ביטול ההגדרה של שדה הטקסט מסיר אותה מהתווית, אבל שדה המשתמש נשאר ללא שינוי. לעומת זאת, הסרה של תווית מוחקת גם את שדות הטקסט וגם את שדות המשתמש שמשויכים לתווית. מידע נוסף זמין במאמר הסרת תווית מקובץ.

Java

LabelFieldModification fieldModification =
  new LabelFieldModification().setFieldId("FIELD_ID").setUnsetValues(true);

ModifyLabelsRequest modifyLabelsRequest =
  new ModifyLabelsRequest()
      .setLabelModifications(
          ImmutableList.of(
              new LabelModification()
                .setLabelId("LABEL_ID")
                .setFieldModifications(ImmutableList.of(fieldModification))));

ModifyLabelsResponse modifyLabelsResponse = driveService.files().modifyLabels("FILE_ID", modifyLabelsRequest).execute();

Python

field_modification = {'fieldId':'FIELD_ID','unsetValues':True}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();

Node.js

/**
* Unset a label with a field on a Drive file
* @return{obj} updated label data
**/
async function unsetLabelField() {
  // 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 fieldModification = {
    'fieldId': 'FIELD_ID',
    'unsetValues': True,
  };
  const labelModification = {
    'labelId': 'LABEL_ID',
    'fieldModifications': [fieldModification],
  };
  const labelModificationRequest = {
    'labelModifications': [labelModification],
  };
  try {
    const updateResponse = await service.files.modifyLabels({
      fileId: 'FILE_ID',
      resource: labelModificationRequest,
    });
    return updateResponse;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • FIELD_ID: ה-fieldId של השדה שרוצים לשנות. כדי לאתר את fieldId, מאחזרים את התווית באמצעות Google Drive Labels API.
  • LABEL_ID: ה-labelId של התווית שרוצים לשנות.
  • FILE_ID: ה-fileId של הקובץ שאת התוויות שלו שונו.