You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OneDrive API中创建共享链接、实现非授权访问及子项操作?

OneDrive API 实现共享链接及文件访问方案

一、已登录用户创建文件夹共享链接

直接调用 POST /drives/{drive-id}/items/{item-id}/createLink 接口即可,请求体里指定权限类型(比如view只读)和链接范围(anonymous允许未登录用户访问)。举个例子,请求体可以这么写:

{
  "type": "view",
  "scope": "anonymous"
}

接口返回的webUrl就是生成的共享链接,另外返回的id是这个共享项的唯一标识,后续访问会用到。

二、direct endpoint的命名空间前缀

官方提到的direct endpoint命名空间前缀就是share。比如你要获取共享项的详情,接口路径是GET /shares/{encoded-sharing-url}/driveItem,这里的shares就是对应的前缀,不用额外加其他内容。注意这里的{encoded-sharing-url}需要把共享链接做URL编码,比如把普通的https链接转成u!aHR0cHM6Ly9...这种格式。

三、未登录用户用共享链接操作文件

1. 先解析共享链接拿到基础信息

把共享链接做URL编码后,调用GET /shares/{encoded-sharing-url}/driveItem,就能拿到这个共享文件夹的id和对应的driveId(这个drive是共享专属的,不是用户自己的OneDrive)。

2. 列出文件夹里的子项

用上面拿到的driveId和文件夹id,调用GET /drives/{shared-drive-id}/items/{folder-id}/children,就能列出文件夹里的所有文件和子文件夹。

3. 对子项做进一步操作

不管是下载文件还是查看子项详情,直接用子项的id拼接接口就行:

  • 下载文件:调用GET /drives/{shared-drive-id}/items/{file-id}/content,只要共享链接权限足够,未登录用户直接发起请求就能拿到文件内容。
  • 查看子项详情:调用GET /drives/{shared-drive-id}/items/{item-id},同样基于共享权限就能访问。

重点提醒:所有操作共享子项的接口,都要用共享专属的driveId,不能用用户自己的OneDrive的driveId,不然未登录用户会没有权限访问。

内容的提问来源于stack exchange,提问作者Lucian Wischik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:04:54