POST を使用した OneDrive へのマルチパート アップロード

マルチパート アップロード メソッドにより、アイテムに関するメタデータとアイテムのコンテンツを 1 つの API 呼び出しで提供できるようになります。 このメソッドは、サイズが 4MB までの要求のみをサポートします。

注: マルチパート アップロードは、OneDrive 個人用でのみ使用できます。

大きなファイルをアップロードする場合は、「アップロード セッションを使ってサイズの大きなファイルをアップロードする」を参照してください。

アクセス許可

この API を呼び出すには、次のいずれかのアクセス許可が必要です。 アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) 該当なし
委任 (個人用 Microsoft アカウント) Files.ReadWrite、Files.ReadWrite.All
アプリケーション 該当なし

HTTP 要求

POST /me/drive/items/{item-id}/children
POST /me/drive/root:/{item-path}/:children

要求本文 (マルチパート コンテンツ + メタデータ アップロード)

マルチパート本文は、ファイルのメタデータとファイルのコンテンツを同時に設定します。 このサービスは、要求に Content-Type: multipart/related ヘッダーが含まれているときに、このシナリオを検出します。

マルチパートおよび関連のエンコードの詳細については、「RFC 2387」のマルチパートおよび関連のドキュメントを参照してください。

アップロードされるドキュメントには、正確に 2 つのパートが含まれている必要があります。

名前 説明
metadata application/json アイテムの作成時に使用するメタデータの値。
content バイナリ 作成されるアイテムのバイナリ コンテンツ。

この要求は、2 つより多くのパートが含まれていると拒否されます。 各パートでは、それがどのパートであるかを示す name 値を Content-Disposition ヘッダーで指定する必要があります。 パートは、どちらの順序でもかまいませんが、メタデータ パートを先に指定するようにします。

POST /drive/items/{folder-id}/children
Content-Type: multipart/related; boundary="A100x"

--A100x
Content-ID: <metadata>
Content-Type: application/json

{
  "name": "newfile.txt",
  "file": {},
  "@microsoft.graph.sourceUrl": "cid:content",
  "@microsoft.graph.conflictBehavior": "rename"
}

--A100x
Content-ID: <content>
Content-Type: text/plain

Contents of the file to be uploaded.

--A100x--

注: 既存のファイル名と同じ名前のファイルをアップロードしたときの動作を制御するために、アイテム メタデータのインスタンス属性を使用できます。 既定では、既存のアイテムに同じ名前が付いていた場合は、アップロードが失敗します。

応答

成功した場合、このメソッドは、応答本文で新しく作成したファイルの driveItem リソースを返します。

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "0123456789abc",
  "name": "newfile.txt",
  "file": { }
}

エラー応答

エラーがどのような形で返されるかについては、「エラー応答」を参照してください。

備考

マルチパート アップロード メソッドは、OneDrive for Business、SharePoint Online および SharePoint Server 2016 ではサポートされていません。