Auf dieser Seite wird beschrieben, wie Sie das Label Field
für eine einzelne Google Drive-Datei entfernen.
Wenn Sie Metadaten aus einer Datei entfernen möchten, indem Sie ein Dateilabel aufheben, verwenden Sie die Methode files.modifyLabels
. Der Anfragetext enthält eine Instanz von ModifyLabelsRequest
, um die Labels einer Datei zu ändern. Die Anfrage kann mehrere Änderungen enthalten, die atomar angewendet werden. Wenn also Änderungen ungültig sind, schlägt das gesamte Update fehl und keine der (möglicherweise abhängigen) Änderungen wird angewendet.
ModifyLabelsRequest
enthält eine Instanz von LabelModification
, die eine Änderung an einem Label für eine Datei darstellt. Es kann auch eine Instanz von FieldModification
enthalten, die eine Änderung an einem Feld des Labels darstellt. Wenn Sie die Werte für das Feld aufheben möchten, setzen Sie FieldModification.unsetValues
auf True
.
Bei Erfolg enthält der Antworttext die durch die Anfrage hinzugefügten oder aktualisierten Labels. Sie sind in einem modifiedLabels
-Objekt vom Typ Label
enthalten.
Beispiel
Das folgende Codebeispiel zeigt, wie Sie mit fieldId
und labelId
die Feldwerte für das zugehörige fileId
zurücksetzen. Wenn ein Label beispielsweise sowohl Text- als auch Nutzerfelder enthält, wird durch das Aufheben der Einstellung des Textfelds das Textfeld aus dem Label entfernt, das Nutzerfeld bleibt jedoch unverändert. Wenn Sie ein Label entfernen, werden sowohl der Text als auch die Nutzerfelder, die mit dem Label verknüpft sind, gelöscht. Weitere Informationen finden Sie unter Label aus einer Datei entfernen.
Java
LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setUnsetValues(true);
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','unsetValues':True}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}
modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();
Node.js
/**
* Unset a label with a field on a Drive file
* @return{obj} updated label data
**/
async function unsetLabelField() {
// 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',
'unsetValues': True,
};
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;
}
}
Ersetzen Sie Folgendes:
- FIELD_ID: Der
fieldId
des zu ändernden Felds. Wenn Sie diefieldId
suchen möchten, rufen Sie das Label mit der Google Drive Labels API ab. - LABEL_ID: Die
labelId
des zu ändernden Labels. - FILE_ID: Die
fileId
der Datei, für die die Labels geändert werden.