En esta página, se describe cómo anular el valor de una etiqueta
Field en un solo
archivo de Google Drive.
Para quitar metadatos de un archivo anulando el valor de una etiqueta de archivo, usa el
files.modifyLabels método. El
cuerpo de la solicitud
contiene una instancia de
ModifyLabelsRequest
para modificar el conjunto de etiquetas en un archivo. La solicitud puede contener varias modificaciones que se aplican de forma atómica. Es decir, si alguna modificación no es válida, toda la actualización no se realiza correctamente y no se aplica ninguno de los cambios (que podrían ser dependientes).
El ModifyLabelsRequest contiene una instancia de
LabelModification
que es una modificación de una etiqueta en un archivo. También puede contener una instancia
de
FieldModification
que es una modificación del campo de una etiqueta. Para anular los valores del campo, establece FieldModification.unsetValues en True.
Si se realiza correctamente, el cuerpo
de la respuesta contiene
las etiquetas agregadas o actualizadas por la solicitud. Estas existen dentro de un
modifiedLabels objeto de tipo Label.
Ejemplo
En la siguiente muestra de código, se muestra cómo usar fieldId y labelId para anular los valores de los campos en el fileId asociado. Por ejemplo, si una etiqueta contiene campos de texto y de usuario, anular el campo de texto lo quita de la etiqueta, pero deja intacto el campo de usuario. En cambio, si quitas una etiqueta, se borran ambos campos de texto y de usuario asociados con la etiqueta. Para obtener más información, consulta
Cómo quitar una etiqueta de un archivo.
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;
}
}
Reemplaza lo siguiente:
- FIELD_ID: El
fieldIddel campo que se modificará. Para ubicar elfieldId, recupera la etiqueta con la API de Google Drive Labels. - LABEL_ID: El
labelIdde la etiqueta que se modificará. - FILE_ID: El
fileIddel archivo para el que se modifican las etiquetas.