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 ではサポートされていません。