파일의 라벨 필드 설정

이 페이지에서는 단일 Google Drive 파일에서 Field 라벨을 설정하는 방법을 설명합니다.

파일 라벨을 설정하여 파일에 메타데이터를 추가하려면 files.modifyLabels 메서드를 사용합니다. 요청 본문에는 파일의 라벨 집합을 수정하기 위한 ModifyLabelsRequest의 인스턴스가 포함됩니다. 요청에는 원자적으로 적용되는 여러 수정사항이 포함될 수 있습니다. 즉, 수정사항이 유효하지 않으면 전체 업데이트가 실패하고 잠재적으로 종속된 변경사항은 적용되지 않습니다.

ModifyLabelsRequest에는 파일의 라벨 수정사항인 LabelModification의 인스턴스가 포함됩니다. 라벨 필드를 수정한 FieldModification 인스턴스도 포함될 수 있습니다.

성공하면 응답 본문에 요청에 의해 추가되거나 업데이트된 라벨이 포함됩니다. 이는 Label 유형의 modifiedLabels 객체 내에 있습니다.

다음 코드 샘플은 텍스트 필드의 fieldId을 사용하여 파일에서 이 Field의 값을 설정하는 방법을 보여줍니다. Field 라벨이 파일에 처음 설정되면 파일에 라벨이 적용됩니다. 그런 다음 단일 필드를 설정 해제하거나 라벨과 연결된 모든 필드를 삭제할 수 있습니다. 자세한 내용은 파일의 라벨 필드 설정 해제파일에서 라벨 삭제를 참조하세요.

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;
  }
}

다음을 바꿉니다.

  • FIELD_ID: 수정할 필드의 fieldId입니다. fieldId를 찾으려면 Google Drive Labels API를 사용하여 라벨을 검색합니다.
  • VALUE: 이 필드의 새 value입니다.
  • LABEL_ID: 수정할 라벨의 labelId입니다.
  • FILE_ID: 라벨이 수정된 파일의 fileId입니다.

Notes

  • 필드가 없는 라벨을 설정하려면 fieldModifications 없이 labelModifications를 적용합니다.
  • 선택 필드 옵션의 값을 설정하려면 Drive Labels API에서 라벨 스키마를 가져와 가져올 수 있는 값의 Choice ID를 사용합니다.
  • 값 목록을 지원하는 Field만 값을 여러 개 설정할 수 있습니다. 그렇지 않으면 400: Bad Request 오류 응답을 받게 됩니다.
  • 선택된 Field에 적절한 값 유형 (예: 정수, 텍스트, 사용자 등)을 설정하세요. 그러지 않으면 400: Bad Request 오류 응답이 수신됩니다. Drive Labels API를 사용하여 필드 데이터 유형을 검색할 수 있습니다.