driveItem コンテンツのダウンロード

名前空間: microsoft.graph

重要

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

driveItem のプライマリ ストリーム (ファイル) のコンテンツをダウンロードします。 ダウンロードできるのは、file プロパティを持つ driveItem オブジェクトのみです。

ダウンロードするアイテムの ID を取得するには、「 Get driveItem」を参照してください。

この 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

応答

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

ファイルの事前認証されたダウンロード 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

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

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

代わりに、アプリで @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 ヘッダーを使用できます。 /contentの要求ではなく、Range ヘッダーを実際の@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>

エラー応答

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