【问题标题】:How to get all the items contained inside a office365 onedrive如何获取 office365 onedrive 中包含的所有项目
【发布时间】:2016-06-09 11:07:40
【问题描述】:

我想在一次 REST API 调用中获取 office365 onedrive 文件夹中包含的所有文件和文件夹,有什么选择吗?

【问题讨论】:

标签: onedrive office365api microsoft-graph-api


【解决方案1】:

没有特定的 API 调用来检索云端硬盘的平面表示。您可以使用驱动器的search 方法获得类似的效果。

只需传递一个空的查询字符串,它就会返回每个文件的元数据(不管它的目录):

https://graph.microsoft.com/v1.0/me/drive/root/search(q='')

【讨论】:

  • 我正在尝试搜索,我观察到的一件事是它给出了不一致的结果,驱动器有很多最近上传的项目,但它们甚至没有被列为搜索的一部分几分钟后。对于另一个驱动器,它们会被列出。
  • 当我这样做时,它总是空的!为什么有人知道?
  • 这不起作用,截至 2020 年 1 月 11 日。它返回状态码 400“无效请求”,并带有错误消息“搜索查询不能为空”。
  • 这个 API 几乎可以做到这一点,只是它总是会丢失一些文件,就好像它们没有被索引一样(即使等了几天,它们也永远不会被 API 返回,不知道为什么)
【解决方案2】:

好的,试试这个搜索请求:

https://graph.microsoft.com/v1.0/me/drive/root/search(q='%2A')

或者:

https://api.onedrive.com:443/v1.0/drives/(driveid)/items/(itemid)/view.search?q=%2A

%2A 是星号,itemid 可能是根文件夹 ID。不要忘记分页。

或使用 OneDriveSDK:

_connection.SearchForItemsAsync(odFolder.ItemReference(), "*", ItemRetrievalOptions.Default)

不要在搜索查询中使用“扩展”查询。 这应该递归返回当前文件夹中的所有项目 - 子文件夹、子项目。

【讨论】:

  • 这个解决方案不起作用。
  • @Gabrielius 这可能被微软改变了。所以,不再起作用了
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多