driveItem: lock

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Adquira um bloqueio exclusivo em um arquivo representado por um driveItem ou estenda um bloqueio existente que você já possui. Enquanto o bloqueio é mantido, outros usuários são impedidos de adquirir um bloqueio no mesmo arquivo. O bloqueio expira automaticamente após o término da duração especificada na solicitação.

Observação

Essa API se aplica somente a driveItems que representam arquivos. Os bloqueios não podem ser aplicados a pastas ou outros driveItems que não sejam de arquivos. As solicitações direcionadas a um driveItem que não é de arquivo são rejeitadas com 400 Bad Request.

Um único ponto de extremidade lida com a aquisição inicial e a atualização. O servidor determina qual comportamento se aplica com base no estado de bloqueio atual do arquivo e na identidade do chamador. O chamador não precisa rastrear se bloqueou o arquivo anteriormente e não precisa gerenciar um identificador de bloqueio.

No momento, há suporte apenas para bloqueios exclusivos.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet
✅ ❌ ❌ ❌

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Files.ReadWrite.All Sites.ReadWrite.All

Observação

O SharePoint Embedded requer a FileStorageContainer.Selected permissão para acessar o conteúdo do contêiner. Essa permissão é diferente das mencionadas anteriormente. Além das permissões do Microsoft Graph, seu aplicativo deve ter as permissões de tipo de contêiner necessárias para chamar essa API. Para obter mais informações, consulte Autenticação e autorização do SharePoint Embedded.

Solicitação HTTP

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

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON dos parâmetros de bloqueio.

Propriedade Tipo Obrigatório Descrição
durationMinutes Int32 Sim Duração do bloqueio em minutos. Deve ser entre 1 e 30 minutos. O bloqueio expira no momento da solicitação mais esse valor.

O identificador de bloqueio e o tipo de bloqueio são determinados pelo servidor e não devem ser fornecidos pelo chamador.

Resposta

O servidor determina se essa solicitação adquire um novo bloqueio ou atualiza um existente com base no estado de bloqueio atual do arquivo e na identidade do chamador:

Estado atual Identidade do chamador Ação
O arquivo não está bloqueado ou o bloqueio existente expirou. Qualquer chamador com permissão. Adquira um novo bloqueio.
O arquivo está bloqueado e o chamador mantém o bloqueio. Mesmo chamador que o proprietário do bloqueio. Atualize o bloqueio existente; expirationDateTime é atualizado.
O arquivo está bloqueado por outro usuário. Chamador diferente. Retornar 409 Conflict. O chamador não pode adquirir um bloqueio até que o bloqueio existente seja liberado ou expire.

Se for bem-sucedido, esse método retornará um código de 200 OK resposta e um recurso lockInfo no corpo da resposta.

Esse método retorna os códigos de resposta de erro a seguir.

Código HTTP Descrição
400 Solicitação incorreta. O durationMinutes está ausente, não é positivo ou excede o máximo de 30 minutos. Também retornado quando o driveItem de destino não é um arquivo (por exemplo, uma pasta).
401 A solicitação não tem credenciais de autenticação válidas.
403 O chamador não tem permissão para bloquear este arquivo.
404 O driveItem não foi encontrado no caminho especificado.
409 O arquivo foi bloqueado por outro usuário. O chamador deve aguardar que o bloqueio existente seja liberado ou expire antes de adquirir um novo bloqueio.

Para obter mais informações sobre como os erros são retornados, consulte Respostas a erros e tipos de recursos para diferenças entre o Microsoft Graph para contas Microsoft e o Microsoft Graph para contas corporativas ou de estudante.

Exemplos

Exemplo 1: Adquirir um bloqueio em um arquivo desbloqueado

Solicitação

O exemplo a seguir mostra uma solicitação.

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

{
  "durationMinutes": 30
}

Resposta

O exemplo a seguir mostra a resposta.

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

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

Exemplo 2: atualizar um bloqueio existente que o chamador já possui

O corpo da solicitação é idêntico ao caso de aquisição; Somente o estado atual do arquivo é diferente.

Solicitação

O exemplo a seguir mostra uma solicitação.

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

{
  "durationMinutes": 10
}

Resposta

O exemplo a seguir mostra a resposta. A expirationDateTime é atualizada.

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

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

Comentários

  • No momento, há suporte apenas para bloqueios exclusivos. O lockType na resposta é sempre exclusive.
  • A duração do bloqueio é limitada a 30 minutos por solicitação. Para retenções mais longas, chame essa API novamente antes que o bloqueio existente expire; A chamada é tratada automaticamente como uma atualização.
  • O novo expirationDateTime é calculado como o tempo da solicitação mais durationMinutes; Ela substitui a expiração anterior em vez de estendê-la. Chamar com uma duração menor do que o tempo restante reduz efetivamente a janela de bloqueio.
  • createdDateTime e expirationDateTime são retornados em UTC.
  • Essa API é idempotente e segura para novas tentativas: se uma falha de rede deixar o chamador incerto se o bloqueio foi bem-sucedido, a repetição naturalmente resultará em uma atualização (se a primeira chamada for bem-sucedida) ou em uma nova aquisição (se não tiver ocorrido).