파일의 라벨 필드 설정

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

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

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

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

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

자바

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입니다.

참고

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