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>
エラー応答
エラーの返し方の詳細については、「エラー応答」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示