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

名前空間: microsoft.graph

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

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と承認の詳細については、こちらをご覧ください。
if-none-match 文字列型 (String ) の値を使用します。 この要求ヘッダーが含まれている場合、指定された eTag (または cTag) がファイルの現在のタグに一致すると、HTTP 304 Not Modified 応答が返されます。

完全なファイルをダウンロードする例を次に示します。

要求

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

応答

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

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

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

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

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

JavaScript アプリでファイルをダウンロードするには、API を /content 使用できません。これはリダイレクトで 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
Content-Type: application/octet-stream

<first 1024 bytes of file>

エラー応答

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