driveItem: lock

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

driveItem で表されるファイルで排他的ロックを取得するか、既に保持している既存のロックを拡張します。 ロックが保持されている間、他のユーザーが同じファイルでロックを取得することはできません。 要求で指定された期間が経過すると、ロックは自動的に期限切れになります。

注:

この API は、ファイルを表す driveItems にのみ適用されます。 フォルダーやその他のファイル以外の driveItems にはロックを適用できません。 ファイル以外の driveItem を対象とする要求は、 400 Bad Request で拒否されます。

1 つのエンドポイントが最初の取得と更新の両方を処理します。 サーバーは、ファイルの現在のロック状態と呼び出し元の ID に基づいて適用される動作を決定します。 呼び出し元は、以前にファイルをロックしたかどうかを追跡する必要はなく、ロック識別子を管理する必要もありません。

現在は排他的ロックのみがサポートされています。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Files.ReadWrite Files.ReadWrite.All、Sites.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Files.ReadWrite.All Sites.ReadWrite.All

注:

SharePoint Embedded では、コンテナーのコンテンツにアクセスするための FileStorageContainer.Selected アクセス許可が必要です。 このアクセス許可は、前述のアクセス許可とは異なります。 Microsoft Graph のアクセス許可に加えて、アプリにはこの API を呼び出すために必要な コンテナーの種類のアクセス許可 が必要です。 詳細については、「 SharePoint Embedded の認証と承認」を参照してください。

HTTP 要求

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

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
Content-Type application/json. 必須です。

要求本文

要求本文では、ロック パラメーターの JSON 表現を指定します。

プロパティ 必須 説明
durationMinutes Int32 はい ロック期間 (分単位)。 1 分から 30 分の間である必要があります。 ロックは、要求時にこの値を加えた時点で期限切れになります。

ロック識別子とロックの種類はサーバーによって決定され、呼び出し元が指定することはできません。

応答

サーバーは、ファイルの現在のロック状態と呼び出し元の ID に基づいて、この要求が新しいロックを取得するか、既存のロックを更新するかを判断します。

現在の状態 発信者 ID アクション
ファイルがロックされていないか、既存のロックの有効期限が切れています。 アクセス許可を持つすべての呼び出し元。 新しいロックを取得します。
ファイルはロックされており、呼び出し元はロックを保持しています。 ロックの所有者と同じ呼び出し元。 既存のロックを更新します。 expirationDateTime が更新されます。
ファイルが別のユーザーによってロックされています。 別の発信者。 409 Conflictを返します。 呼び出し元は、既存のロックが解放されるか、有効期限が切れるまでロックを取得できません。

成功した場合、このメソッドは応答本文で 200 OK 応答コードと lockInfo リソースを返します。

このメソッドは、次のエラー応答コードを返します。

HTTP コード 説明
400 要求が正しくありません。 durationMinutes が欠落しているか、正ではないか、または最大 30 分を超えています。 対象の driveItem がファイル (フォルダーなど) でない場合にも返されます。
401 要求に有効な認証資格情報がありません。
403 呼び出し元には、このファイルをロックするアクセス許可がありません。
404 driveItem が指定したパスで見つかりませんでした。
409 ファイルが別のユーザーによってロックされています。 呼び出し元は、既存のロックが解放されるか、有効期限が切れるまで待ってから、新しいロックを取得する必要があります。

エラーが返される方法の詳細については、 Microsoft アカウントの Microsoft Graph と職場または学校アカウントの Microsoft Graph の違いについては、「エラー応答とリソースの種類」を参照してください。

例 1:ロック解除されたファイルのロックを取得する

要求

次の例は要求を示しています。

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

{
  "durationMinutes": 30
}

応答

次の例は応答を示しています。

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

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

例 2: 呼び出し元が既に保持している既存のロックを更新する

要求本文は取得ケースと同じです。ファイルの現在の状態のみが異なります。

要求

次の例は要求を示しています。

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

{
  "durationMinutes": 10
}

応答

次の例は応答を示しています。 expirationDateTime が更新されます。

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

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

注釈

  • 現在は排他的ロックのみがサポートされています。 応答の lockType は常に exclusive です。
  • ロック期間は、要求あたり 30 分に制限されています。 より長い保留の場合は、既存のロックの有効期限が切れる前に、この API を再度呼び出します。呼び出しは自動的に更新として処理されます。
  • 新しい expirationDateTime は、要求時間に durationMinutes を加えたものとして計算されます。前の有効期限を延長するのではなく、置き換えます。 残り時間よりも短い時間で呼び出すと、ロック期間が効果的に短縮されます。
  • createdDateTimeexpirationDateTime は UTC で返されます。
  • この API はべき等であり、再試行セーフです。ネットワーク障害により、呼び出し元がロックが成功したかどうかが不明な場合、再試行すると、当然ながら更新 (最初の呼び出しが成功した場合) または新しい取得 (成功しなかった場合) が実行されます。