Menetapkan kolom label pada file

Halaman ini menjelaskan cara menetapkan label Field pada satu file Google Drive.

Untuk menambahkan metadata ke file dengan menetapkan label file, gunakan metode files.modifyLabels. Isi permintaan berisi instance ModifyLabelsRequest untuk mengubah kumpulan label pada file. Permintaan tersebut mungkin berisi beberapa modifikasi yang diterapkan secara atomik. Artinya, jika modifikasi apa pun tidak valid, seluruh update tidak akan berhasil dan tidak ada perubahan (yang berpotensi bergantung) yang diterapkan.

ModifyLabelsRequest berisi instance LabelModification yang merupakan modifikasi pada label di file. Kolom ini juga dapat berisi instance FieldModification yang merupakan modifikasi pada kolom label.

Jika berhasil, isi respons akan berisi label yang ditambahkan atau diperbarui oleh permintaan. Ini ada dalam objek modifiedLabels dari jenis Label.

Contoh

Contoh kode berikut menunjukkan cara menggunakan fieldId kolom teks guna menetapkan nilai untuk Field ini pada file. Jika label Field pertama kali ditetapkan pada file, label itu akan diterapkan ke file tersebut. Kemudian, Anda dapat menghapus setelan satu kolom atau menghapus semua kolom yang terkait dengan label. Untuk mengetahui informasi selengkapnya, lihat Membatalkan penetapan kolom label di file dan Menghapus label dari file.

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

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','setTextValues':['VALUE']}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

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

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // 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',
    'setTextValues': ['VALUE'],
  };
  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;
  }
}

Ganti kode berikut:

  • FIELD_ID: fieldId kolom yang akan diubah. Untuk menemukan fieldId, ambil label menggunakan Google Drive Labels API.
  • VALUE: value baru untuk kolom ini.
  • LABEL_ID: labelId label yang akan diubah.
  • FILE_ID: fileId file yang labelnya akan diubah.

Catatan

  • Untuk menetapkan label tanpa kolom, terapkan labelModifications tanpa fieldModifications.
  • Untuk menetapkan nilai opsi kolom pilihan, gunakan ID Choice dari nilai yang dapat Anda dapatkan dengan mengambil skema label di Drive Labels API.
  • Hanya Field yang mendukung daftar nilai yang dapat menetapkan beberapa nilai. Jika tidak, Anda akan menerima respons error 400: Bad Request.
  • Tetapkan jenis nilai yang tepat untuk Field yang dipilih (seperti bilangan bulat, teks, pengguna, dll.), jika tidak, Anda akan menerima respons error 400: Bad Request. Anda dapat mengambil jenis data kolom menggunakan Drive Labels API.