이 페이지에서는 단일 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를 사용하여 필드 데이터 유형을 검색할 수 있습니다.