javascript - 一个驱动器 api 安全 URL
问题描述
短的:
我无法在文档一个驱动器 api中找到任何设置来获取没有访问令牌就无法访问的文件 url
细节:
我尝试了不同的东西,queryParameters: "select=id,name,size,file"
但无法改变结果
使用 javascript API,当从一个文件中选择文件时,它会给出一个名为的数组values
,其中每个对象都包含类似的属性(一些假的但样本值)
@microsoft.graph.downloadUrl: "https://public.sn.files.1drv.com/m7ZHglUdfkMkwg-qqnNj8"
@odata.context: "https://graph.microsoft.com/v1.0/$metadata#drives('D2CFA54CB9FFC341')/items/$entity"
id: "FA4454CB9FFC341!172"
name: "sada.pdf"
size: 4344
我获得上述结果的代码是
var odOptions = {
clientId: "df45ae45-68bd-4568-a473-4159a1b16fc1",
action: "download",
multiSelect: true,
// openInNewWindow: true,
// advanced: {
// queryParameters: "/drive/root/children?select=id,name,size,file",
// },
success: function (response) {
console.log(555, response);
},
cancel: function (response) { console.log(response); },
error: function (e) { console.log(e); }
};
OneDrive.open(odOptions);
问题是https://public.sn.files..
公共 url(任何人都可以访问文件而无需使用此 url 登录),这与提供安全 url 的谷歌驱动器不同
解决方案
这downloadUrl
是一个经过预先身份验证的短暂 URL,因此不需要授权。而是对返回 URL 的请求执行访问控制检查。更接近 Google Drive 使用的流程将是命中/content
特定文件的端点 - 此请求需要提供 OAuth 令牌并将返回二进制内容。
推荐阅读
- autodesk-forge - 如何获取所选对象的数量?
- java - 如何使用 Java 对价格进行四舍五入
- java - spring-hibernate中审计表中的异步插入
- postgresql - 适配器 Ecto.Adapters.Postgres 未编译
- sql - 聚合查询后转置行和列
- dialogflow-es - 如何在 Dialogflow 中的检测意图文本 API 中发送 accessToken
- google-cloud-platform - Google Cloud Armor Beta:检测某些产生流量并阻止它们的 ip
- java - if(item1 ? item2) 的含义:item3
- java - Java中Postman和POST请求的区别
- javascript - 从 muterun_js 获取输出到 python