driveItem の内容をダウンロードする

名前空間: microsoft.graph

重要

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

driveItem のプライマリ ストリーム (ファイル) のコンテンツをダウンロードします。 file プロパティを持つ driveItems のみがダウンロード可能です。

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

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

アクセス許可

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

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

HTTP 要求

GET /drives/{drive-id}/items/{item-id}/content
GET /groups/{group-id}/drive/items/{item-id}/content
GET /me/drive/root:/{item-path}:/content
GET /me/drive/items/{item-id}/content
GET /shares/{shareIdOrEncodedSharingUrl}/driveItem/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content

オプションの要求ヘッダー

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

次の例は、完全なファイルをダウンロードする方法に関する要求を示しています。

要求

GET /me/drive/items/{item-id}/content

応答

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

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

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

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

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

JavaScript アプリでのファイルのダウンロード

JavaScript アプリでファイルをダウンロードするには、リダイレクトで /content 応答するため、API を 302 使用できません。 Authorization ヘッダーを302指定する場合など、クロスオリジン リソース共有 (CORS)プレフライトが必要な場合、リダイレクトは明示的に禁止されます。

代わりに、アプリで @microsoft.graph.downloadUrl プロパティを選択する必要があります。このプロパティは、/content がリダイレクトした URL と同じ URL を返します。 この URL は、XMLHttpRequest を使用して直接要求できます。 これらの URL は事前認証されているため、CORS プリフライト要求なしで取得できます。

ファイルのダウンロード URL を取得するには、まず @microsoft.graph.downloadUrl プロパティを含む要求を作成します。

GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl

呼び出しは、ファイルの ID とダウンロード URL を返します。

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

{
  "id": "12319191!11919",
  "@microsoft.graph.downloadUrl": "https://..."
}

次に、@microsoft.graph.downloadUrl で提供された URL の XMLHttpRequest を作成して、ファイルを取得できます。

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

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

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>

エラー応答

エラーの返し方の詳細については、「エラー応答」を参照してください。