DriveItem のコンテンツをダウンロードする

driveItem のコンテンツをダウンロードします。file プロパティを持つ driveItem のみがダウンロード可能です。

前提条件

この API を実行するには、以下のいずれかのスコープが必要です。

  • Files.Read
  • Files.ReadWrite

HTTP 要求

GET /me/drive/root:/{item-path}:/content
GET /me/drive/items/{item-id}/content
GET /drives/items/{item-id}/content
GET /groups/{group-id}/drive/items/{item-id}/content

要求ヘッダー

名前 説明
if-none-match String この要求ヘッダーが含まれている場合、指定された eTag (または cTag) がファイルの現在のタグに一致すると、HTTP 304 Not Modified 応答が返されます。

要求本文

このメソッドには、要求本文を指定しません。

以下は、この API を呼び出す方法の例です。

GET https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/content
応答

ファイルの事前認証されたダウンロード URL にリダイレクトする、302 Found 応答を返します。これは、DriveItem の @microsoft.graph.downloadUrl プロパティを通じて使用可能な URL と同じものです。

ファイルのコンテンツをダウンロードするには、アプリケーションで応答の Location ヘッダーに従う必要があります。多くの HTTP クライアント ライブラリは、自動的に 302 リダイレクションに従い、即座にファイルのダウンロードを開始します。

事前認証されたダウンロード URL は、短期間 (数分) のみ有効で、ダウンロードのために Authorization ヘッダーを必要としません。

HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi

部分的な範囲のダウンロード

ファイルから部分的なバイトの範囲をダウンロードするには、RFC 2616 で規定されているように、アプリで Range ヘッダーを使用します。Range ヘッダーは実際の @microsoft.graph.downloadUrl URL に追加する必要があり、/content の要求には追加しない点に注意してください。

GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023

これにより、ファイルからのバイトの要求範囲を含む HTTP 206 Partial Content 応答が返されます。範囲が生成できない場合、Range ヘッダーは無視され、ファイルの完全なコンテンツを含む HTTP 200 応答が返されます。

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048

<first 1024 bytes of file>