gpt4 book ai didi

onedrive - 从 OneDrive 下载公开共享的文件

转载 作者:行者123 更新时间:2023-12-02 08:22:12 31 4
gpt4 key购买 nike

当我使用“知道此链接的任何人都可以查看此项目”选项在 UI 中创建共享链接时,我得到一个类似于 https://onedrive.live.com/redir?resid=XXX!YYYY&authkey=!ZZZZZ&ithint=<contentType> 的 URL。 .我想不通的是如何从代码中使用这个 URL 来下载文件的内容。点击链接会为页面提供 HTML 以显示文件。

我如何构造一个下载文件的调用?此外,是否有一种方法可以构建调用以获取有关文件的某些(XML/JSON)元数据,甚至可能是预览或其他内容?我希望能够在不提示用户输入凭据的情况下完成所有这些操作,并且所有 API 文档都是关于如何进行已验证 调用的。我想调用匿名电话以获取公开共享的文件。

最佳答案

阅读 https://dev.onedrive.com - 它记录了您如何查询我们的服务以获取项目的元数据,以及可用于直接下载内容的 URL。

更新更多细节

抱歉,您的特定场景所需的文档仍在处理中(以及相关的 SDK 更改),因此我将向您简要介绍如何执行此操作。

/drives 有一个兄弟名为 /shares 的路径它接受编码格式的共享 URL(例如您上面的那个),并允许您获取它所代表的项目的元数据。如果共享 URL 具有有效的 authkey,这不需要验证.

id 的编码方案是u!<UrlSafeBase64EncodedUrl> , 其中<UrlSafeBase64EncodedUrl>遵循概述的准则 here (修剪掉末尾的 = 个字符)。

下面是一个片段,可以让您了解整个过程:

string originalUrl = "https://onedrive.live.com/redir?resid=XXX!YYYY&authkey=!foo";
byte[] urlAsUtf8Bytes = Encoding.UTF8.GetBytes(originalUrl);
string utf8BytesAsBase64String = Convert.ToBase64String(urlAsUtf8Bytes);
string encodedUrl = "u!" + utf8BytesAsBase64String.TrimEnd('=').Replace('/', '_').Replace('+', '-');

string metadataUrl = "https://api.onedrive.com/v1.0/shares/" + encodedUrl + "/root";

从那里你可以追加/content如果您想获取文件的内容,或者如果 URL 表示文件夹(例如 /children/childfile.txt),您可以开始浏览

关于onedrive - 从 OneDrive 下载公开共享的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36015295/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com