繁体   English   中英

如何从OneDrive API获取共享和下载链接

[英]How can I get share and download links from OneDrive API

我正在使用OneDrive JS Picker,并希望获得下载和共享的价值。 文档中的示例列出了用管道分隔的action参数的选项。 我希望使用按位运算符来合并这些值(例如

action: "share | download"

但这似乎既不允许webUrl值也不允许下载URL(@ microsoft.graph.downloadUrl)...其他人是否能够做到这一点? 还是有一种方法可以使用共享URL(webUrl)获取下载URL,以便我们可以获取文件的文本内容?

我知道有REST服务可用,但鉴于该页面顶部的消息,该服务可能已被弃用:

本文档已存档,不再维护。

但是如果仍然可以使用,也许我们可以用它来下载文件...如果可以,我可以将文件ID放在该下载URL和访问令牌中吗?

我能够在本地托管OneDrive.js文件 ,取消最小化并修改下面的行(第104行)以使downloadUrl包含在文件的所有查询中。 这样就可以获取shareUrl和downloadUrl。

e.DEFAULT_QUERY_ITEM_PARAMETER = "expand=thumbnails&select=id,name,size,webUrl,folder,@content.downloadUrl";

对不起,误导了管道标志。 实际上,目前我们每个请求只允许执行一个操作,例如(操作:“查询”)。 doc中的管道符号用英语而不是代码表示“或”。

在回答之前,我想澄清一下webUrl和shareUrl之间的区别。

  • 您在响应的“ webUrl”属性中看到的webUrl是指向资源在线的url,需要用户登录才能看到它。

  • 一个shareUrl包含许可,拥有该链接的每个人都可以根据用户的配置查看/编辑该许可。

JS Picker

如果您希望同时返回下载链接和webUrl,则应该很容易:

{
    action: "query",
    advanced: {queryParameters: "select=id,name,webUrl,@content.downloadUrl"}
}

如果要同时返回下载链接和共享链接,则不支持。

API

为了使用API​​实现此目的,您可以转到新的API页面: https : //dev.onedrive.com/items/get.htm

并获得已共享链接的项目应为

GET /v1.0/drive/items/<item-id>?select=id,name,@content.downloadUrl,webUrl&expand=permissions

所有已经共享的链接都应在权限数组对象中返回。

如果没有共享链接,并且需要创建共享链接,则应尝试https://dev.onedrive.com/items/sharing_createLink.htm

虽然它不返回webUrl并下载回URL,所以您需要额外的请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM