driveItem: lock

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Adquiera un bloqueo exclusivo sobre un archivo representado por un elemento de unidad o amplíe un bloqueo existente que ya tenga. Mientras se mantiene el bloqueo, otros usuarios no pueden adquirir un bloqueo en el mismo archivo. El bloqueo expira automáticamente después de que transcurra el tiempo especificado en la solicitud.

Nota:

Esta API solo se aplica a driveItems que representan archivos. Los bloqueos no se pueden aplicar a carpetas u otros elementos de unidad que no sean de archivos. Las solicitudes dirigidas a un elemento driveItem que no es de archivo se rechazan con 400 Bad Request.

Un único punto de conexión controla tanto la adquisición inicial como la actualización. El servidor determina qué comportamiento se aplica en función del estado de bloqueo actual del archivo y la identidad del autor de la llamada. El autor de la llamada no necesita realizar un seguimiento de si ha bloqueado previamente el archivo y no necesita administrar un identificador de bloqueo.

Actualmente solo se admiten bloqueos exclusivos.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet
✅ ❌ ❌ ❌

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Files.ReadWrite.All Sites.ReadWrite.All

Nota:

SharePoint Embedded requiere permiso FileStorageContainer.Selected para acceder al contenido del contenedor. Este permiso es diferente de los mencionados anteriormente. Además de los permisos de Microsoft Graph, la aplicación debe tener los permisos de tipo de contenedor necesarios para llamar a esta API. Para obtener más información, consulte Autenticación y autorización de SharePoint Embedded.

Solicitud HTTP

POST /drives/{drive-id}/items/{item-id}/lock

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre autenticación y autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de los parámetros de bloqueo.

Propiedad Tipo Obligatorio Description
durationMinutes Int32 Sí Duración del bloqueo en minutos. Debe ser de entre 1 y 30 minutos. El bloqueo expira en el momento de la solicitud más este valor.

El identificador y el tipo de bloqueo están determinados por el servidor y no los debe proporcionar el autor de la llamada.

Respuesta

El servidor determina si esta solicitud adquiere un nuevo bloqueo o actualiza uno existente en función del estado de bloqueo actual del archivo y la identidad de la persona que llama:

Estado actual Identidad del autor de llamada Acción
El archivo no está bloqueado o el bloqueo existente expiró. Cualquier autor de llamada con permiso. Adquiera un nuevo candado.
El archivo está bloqueado y el autor de la llamada mantiene el bloqueo. El mismo autor de la llamada que el propietario de la cerradura. Actualizar el bloqueo existente; expirationDateTime se actualiza.
Otro usuario ha bloqueado el archivo. Autor de llamada diferente. Retorno 409 Conflict. El autor de la llamada no puede adquirir un bloqueo hasta que el bloqueo existente se libere o expire.

Si se realiza correctamente, este método devuelve un 200 OK código de respuesta y un recurso lockInfo en el cuerpo de la respuesta.

Este método devuelve los siguientes códigos de respuesta de error.

Código HTTP Descripción
400 Solicitud incorrecta. Falta el elemento durationMinutes , no es positivo o supera el límite de 30 minutos. También se devuelve cuando el elemento de unidad de destino no es un archivo (por ejemplo, una carpeta).
401 La solicitud carece de credenciales de autenticación válidas.
403 El autor de la llamada no tiene permiso para bloquear este archivo.
404 No se encontró el elemento de unidad en la ruta de acceso especificada.
409 Otro usuario ha bloqueado el archivo. El autor de la llamada debe esperar a que se libere el bloqueo existente o expire antes de adquirir un nuevo bloqueo.

Para obtener más información sobre cómo se devuelven los errores, consulte Respuestas de error y tipos de recursos para conocer las diferencias entre Microsoft Graph para cuentas Microsoft y Microsoft Graph para cuentas profesionales o educativas.

Ejemplos

Ejemplo 1: Adquirir un bloqueo en un archivo desbloqueado

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/drives/{drive-id}/items/{item-id}/lock
Content-Type: application/json

{
  "durationMinutes": 30
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "lockType": "exclusive",
  "expirationDateTime": "2026-05-13T14:30:00Z",
  "createdDateTime": "2026-05-13T14:00:00Z"
}

Ejemplo 2: Actualizar un bloqueo existente que el autor de la llamada ya tiene

El cuerpo de la solicitud es idéntico al caso de adquisición; Solo es diferente el estado actual del archivo.

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/drives/{drive-id}/items/{item-id}/lock
Content-Type: application/json

{
  "durationMinutes": 10
}

Respuesta

En el ejemplo siguiente se muestra la respuesta. Se actualiza expirationDateTime.

HTTP/1.1 200 OK
Content-Type: application/json

{
  "lockType": "exclusive",
  "expirationDateTime": "2026-05-13T14:39:00Z",
  "createdDateTime": "2026-05-13T14:00:00Z"
}

Comentarios

  • Actualmente solo se admiten bloqueos exclusivos. El lockType de la respuesta siempre exclusivees .
  • La duración del bloqueo está limitada a 30 minutos por solicitud. Para retenciones más largas, vuelva a llamar a esta API antes de que expire el bloqueo existente; La llamada se gestiona automáticamente como una actualización.
  • El nuevo expirationDateTime se calcula como el tiempo de la solicitud más durationMinutes; reemplaza la expiración anterior en lugar de extenderla. Las llamadas con una duración más corta que el tiempo restante reducen de forma eficaz la ventana de bloqueo.
  • createdDateTime y expirationDateTime se devuelven en UTC.
  • Esta API es idempotente y segura para reintentos: si un error de red deja al autor de la llamada sin saber si el bloqueo se ha realizado correctamente, reintentar de forma natural da lugar a una actualización (si la primera llamada se realizó correctamente) o una nueva adquisición (si no lo hizo).