Cette page explique comment annuler la définition d'un libellé Field
sur un seul fichier Google Drive.
Pour supprimer des métadonnées d'un fichier en annulant la définition d'un libellé de fichier, utilisez la méthode files.modifyLabels
. Le corps de la requête contient une instance de ModifyLabelsRequest
permettant de modifier l'ensemble des libellés d'un fichier. La requête peut contenir plusieurs modifications appliquées de manière atomique. Autrement dit, si des modifications ne sont pas valides, l'ensemble de la mise à jour échoue et aucune des modifications (potentiellement dépendantes) n'est appliquée.
ModifyLabelsRequest
contient une instance de LabelModification
, qui est une modification d'un libellé sur un fichier. Il peut également contenir une instance de FieldModification
, qui est une modification du champ d'un libellé. Pour annuler la définition des valeurs du champ, définissez FieldModification.unsetValues
sur True
.
Si la requête aboutit, le corps de la réponse contient les étiquettes ajoutées ou mises à jour par la requête. Elles existent dans un objet modifiedLabels
de type Label
.
Exemple
L'exemple de code suivant montre comment utiliser fieldId
et labelId
pour annuler la définition des valeurs des champs du fileId
associé. Par exemple, si un libellé contient à la fois du texte et des champs utilisateur, la désactivation du champ de texte le supprime du libellé, mais le laisse intact. La suppression d'un libellé entraîne la suppression à la fois du texte et des champs utilisateur qui lui sont associés. Pour en savoir plus, consultez la section Supprimer un libellé d'un fichier.
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;
}
}
Remplacez les éléments suivants :
- FIELD_ID:
fieldId
du champ à modifier. Pour localiser lefieldId
, récupérez le libellé à l'aide de l'API Google Drive Étiquettes. - LABEL_ID:
labelId
du libellé à modifier. - FILE_ID:
fileId
du fichier pour lequel les libellés sont modifiés.