这是我第一次在StackOverflow上编写。我的问题如下。使用OneDrive Rest API进行块下载API
我想写基础上,cpprest SDK卡萨布兰卡项目OneDrive C++ API:
https://casablanca.codeplex.com/
特别,我正在实施一个关于OneDrive文件读取操作。
其实,我已经能够下载整个文件用下面的代码:
http_client api(U("https://apis.live.net/v5.0/"), m_http_config);
api.request(methods::GET, file_id +L"/content").then([=](http_response response){
return response.body();
}).then([=](istream is){
streambuf<uint8_t> rwbuf = file_buffer<uint8_t>::open(L"test.txt").get();
is.read_to_end(rwbuf).get();
rwbuf.close();
}).wait()
此代码基本上是下载整个文件的计算机上(file_id的是我想该文件的ID下载)。当然,我可以从文件中提取输入流并使用它读取文件。
但是,如果文件很大,这可能会出现问题。我想到的是在调用者读取文件时下载文件的一部分(如果他回来了,缓存那部分文件)。
然后,我的问题是:
是否有可能,使用OneDrive REST + cpprest下载存储在OneDrive文件的一部分。我发现上传块文件看起来似乎不可能(Chunked upload (resumable upload) for OneDrive?)。这是否也适用于下载?
预先感谢您的时间。
此致
朱塞佩
谢谢你!据你所知,也可以指定这些头文件上传的文件? – 2014-09-24 10:29:04
范围仅指HTTP检索请求,例如您在上面执行的操作。从理论上讲,Content-Range标头可以用来促进分块上传机制,但是,从另一个答案中发现OneDrive目前不支持这种语义。 – Brad 2014-09-24 18:22:31
现在有一些文档描述了分块上载如何抵制OneDrive。阅读https://gist.github.com/rgregg/37ba8929768a62131e85,看看它是否适合你的情况 – Brad 2014-12-16 17:41:58