在view.delta中提供{item-path}实际需要的价值OneDrive for Business API

时间:2016-04-19 05:11:48

标签: onedrive

我正在使用/drive/root:/{item-path}:/view.delta来获取根文件夹中OneDrive for Business中文件的更改。我尝试使用类似/drive/root:/Files/filename:/view.delta的路径,但响应是找不到资源的。有人可以解释这个值究竟是什么?

我关注的链接如下。

more details

1 个答案:

答案 0 :(得分:1)

该错误表明/Files/filename不存在,但即使这样做,您也会遇到view.delta当前如何与OneDrive for Business合作的另一个限制。长话短说,它仅限于处理驱动器的根目录,即/drive/root/view.delta。使用此路径,您将获得驱动器中所有项目的更改,而不仅仅是您感兴趣的项目。

鉴于您正在尝试检测单个文件中的更改,您可能需要考虑带有If-None-Match标头的标准元数据请求,该标头包含应用程序看到的最后状态的ETag。

例如,您首先发出请求而没有任何其他标头来获取初始状态:

请求:

GET /_api/v2.0/drive/root:/File/filename

响应:

200 OK
{
  ...
  "name": "filename",
  "etag": "\"aasdfasdf\"",
  "modifiedDateTime": "2016-01-01T00:00:00Z",
  ...
}

在将来的某个时刻,您可以使用If-None-Match标题中的etag值拨打电话:

请求:

GET /_api/v2.0/drive/root:/File/filename
If-None-Match: "aasdfasdf"

响应:

304 Not Modified

如果文件实际发生了变化,您将收到新的回复。

请求:

GET /_api/v2.0/drive/root:/File/filename
If-None-Match: "aasdfasdf"

响应:

200 OK
{
  ...
  "name": "filename",
  "etag": "\"poihklhjl\"",
  "modifiedDateTime": "2016-04-19T00:00:00Z",
  ...
}