tawalaya
tawalaya

Reputation: 51

OneDrive API download in parts

I am currently trying to develop a Java based app to access OneDrive.

Today i tried to implement the download as described here: https://dev.onedrive.com/items/download.htm

I wanted to use the range parameter, to offer the user the capability to pause large downloads. But no matter how i send the parameter be at within the HTTP-Request header or in the URL as a GET-Parameter it will always send me the complete file.

Things i tried so far:

  1. https:/ /api.onedrive.com/v1.0/drive/items/***/content?range=0-8388607

(OAuth via HTTP header)

  1. https:/ /api.onedrive.com/v1.0/drive/items/***/content:

    Header: Authorization: ***

    range: 0-8388607

  2. https:/ /api.onedrive.com/v1.0/drive/items/***/content:

    Header: Authorization: ***

    range: bytes=0-8388607

I also tried Content-Range and various variations on lower and upper case without success. Any reason why this dose not work?

PS.:

The links a broken because i am using a new account that only allows 2 links per post, I am aware that ther is a space between the two // in my post ;)

Upvotes: 0

Views: 1171

Answers (1)

Toan-Nguyen
Toan-Nguyen

Reputation: 321

Requesting the range of the file is supported. You might want to use fiddler or some other tool to see if the original headers are being passed after the 302 redirect is performed. Below are the HTTP requests and responses when I provide the range header which is being passed on after the 302 redirect occurs. You'll notice that a HTTP 206 partial content response is returned. Additionally, to resume a download, you can use "Range: bytes=1025-" or whatever the last byte received was. I hope that helps.

GET https://api.onedrive.com/v1.0/drive/items/item-id/content HTTP/1.1 Authorization: Bearer Range: bytes=0-1024 Host: api.onedrive.com

HTTP/1.1 302 Found Content-Length: 0 Location: https://kplnyq.dm2302.livefilestore.com/edited_location Other headers removed

GET https://kplnyq.dm2302.livefilestore.com/edited_location Range: bytes=0-1024 Host: kplnyq.dm2302.livefilestore.com HTTP/1.1 206 Partial Content Cache-Control: public Content-Length: 1025 Content-Type: audio/mpeg Content-Location: https://kplnyq.dm2302.livefilestore.com/edited_location Content-Range: bytes 0-1024/4842585 Expires: Tue, 11 Aug 2015 21:34:52 GMT Last-Modified: Mon, 12 Dec 2011 21:33:41 GMT Accept-Ranges: bytes Server: Microsoft-HTTPAPI/2.0 Other headers removed

Upvotes: 2

Related Questions