【问题标题】:OneDrive REST API embed download urlOneDrive REST API 嵌入下载网址
【发布时间】:2020-11-07 14:58:21
【问题描述】:

我正在尝试通过 Rest API 在 OneDrive 个人版中生成嵌入链接。我正在使用函数 createLink (link)。我能够生成一个链接,但在浏览器中打开此链接会给我一个“抱歉,出了点问题”错误。
如果我通过浏览器登录 OneDrive,我可以看到该文件现在已共享,并且有一个嵌入链接。通过 API 返回的相同链接。此链接格式为:
https://onedrive.live.com/embed?resid=abcdef&authkey=123456
但是,如果我单击嵌入按钮,我会得到一个更长、不同格式的链接:
https://yfzapq.am.files.1drv.com/abcdefg123456?height=504&width=504
该链接完美运行。将其粘贴到任何浏览器中,它就会下载文件 - 不问任何问题!
所以我的问题是如何通过 Rest API 获取第二个链接?

【问题讨论】:

    标签: onedrive


    【解决方案1】:

    遇到了同样的问题。当您在网站上使用“嵌入”时,我查看了 onedrive 是如何获得嵌入网址的。原来它使用了除 createLink 之外的其他功能 - 它使用 /thumbnails

    你也可以使用这个函数,因为它是 Rest API 的一部分——结果你会得到https://yfzapq.am.files.1drv.com/abcdefg123456?width=768&height=1024&cropmode=nonethat 格式的链接,它似乎永远存在。如果你从 url (?width=768&height=1024&cropmode=none) 中删除所有参数,它将导致原始图像。

    PS 这种方法的问题 - 缩略图网址会在 4 小时内死掉(根据我的经验)。


    2020 年 11 月 7 日的状态

    上述方法停止工作,现在它只返回死 URL。我正在使用的当前解决方案是GET /me/drive/items/{item-id}/content。 它重定向到您可以下载文件的页面。但是您也可以做的是禁用此请求的重定向并获取所请求文件的直接 url(来自“位置”标头)。

    当然,它不会永远持续下去,但是如果您需要从其他地方的谷歌驱动器重新上传文件而不实际下载它们并提供要上传的网址,则可以使用此方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 2020-06-21
      • 2018-02-27
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多