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