次の方法で共有


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

名前空間: microsoft.graph

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

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
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 アプリでファイルをダウンロードするには、 /content API を使用できません。これは、 302 リダイレクトで応答するためです。 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
Content-Type: application/octet-stream

<first 1024 bytes of file>

エラー応答

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