Microsoft图形驱动器项webUrl根据文档提供驱动器项的视图URL: “在浏览器中显示资源的URL。只读。”
我们发现返回的图片和视频的网址具有以下两种作用之一:
例如,下载了avi文件,但是如果我们转到OneDrive并进行“预览”,则会弹出一个观众来播放视频。
有什么方法可以通过api而不是webUrl提供的视图URL来获取。网址似乎采用以下形式: https://jostledev-my.sharepoint.com/personal/xxx/_layouts/15/onedrive.aspx?FolderCTID=yyy&id=%2Fpersonal%2Fxxx%2FDocuments%2FJostle%20Storage%2FWildlife%2Ewmv&parent=%2Fpersonal%2Fxxx%2FDocuments%2FJostle%20Storage
答案 0 :(得分:0)
实际上,DriveItem
webUrl
属性在One Drive中返回原始到资产的网址。
要返回页面链接,可以使用Create a sharing link端点,例如请求:
POST /me/drive/items/{item-id}/createLink
Content-type: application/json
{
"type": "view",
"scope": "anonymous"
}
应返回以下响应
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#permission",
"@odata.type": "#microsoft.graph.permission",
"id": "34e2cb9c-bab6-4a60-b48b-f274af531ba5",
"roles": [
"read"
],
"link": {
"scope": "anonymous",
"type": "view",
"webUrl": "https://contoso-my.sharepoint.com/:v:/g/personal/jdoe_contoso_onmicrosoft_com/EXU29gb_xaZCjCNqN7F0_AMBqt9rXdrE_E6GLDoSNAFOFg"
}
}
其中link.webUrl
属性包含页面链接。
更新
另一种选择是从DriveItem.webUrl
属性构造页面网址,例如:
function createPageLink(webUrl){
const oneDriveUrl = webUrl.substr(0,webUrl.indexOf('onmicrosoft_com') + 'onmicrosoft_com'.length);
var relUrl = webUrl.substr(webUrl.indexOf('/personal'))
const parentUrl = relUrl.split('/').slice(0, -1).join('/');
return `${oneDriveUrl}/_layouts/15/onedrive.aspx?id=${relUrl}&parent=${parentUrl}`;
}