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

בדף הזה נסביר איך לבטל את ההגדרה של תווית 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 של הקובץ שעבורו משנים את התוויות.