首页 > 解决方案 > 一个驱动器 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 的谷歌驱动器不同

标签: javascriptonedrive

解决方案


downloadUrl是一个经过预先身份验证的短暂 URL,因此不需要授权。而是对返回 URL 的请求执行访问控制检查。更接近 Google Drive 使用的流程将是命中/content特定文件的端点 - 此请求需要提供 OAuth 令牌并将返回二进制内容。


推荐阅读