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>
エラー応答
エラーの返し方の詳細については、「エラー応答」を参照してください。