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