driveItem: createLink
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
可以使用 createLink 操作通过共享链接共享 driveItem。
如果调用应用程序指定的链接类型尚不存在,CreateLink 操作将创建新的共享链接。如果应用程序指定的共享链接类型已存在,则返回现有的共享链接。
DriveItem 资源从其上级继承共享权限。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 | 权限(从最低特权到最高特权) |
|---|---|
| 委派(工作或学校帐户) | Files.ReadWrite、Files.ReadWrite.All、Sites.ReadWrite.All |
| 委派(个人 Microsoft 帐户) | Files.ReadWrite、Files.ReadWrite.All |
| 应用程序 | Files.ReadWrite.All、Sites.ReadWrite.All |
HTTP 请求
POST /drives/{driveId}/items/{itemId}/createLink
POST /groups/{groupId}/drive/items/{itemId}/createLink
POST /me/drive/items/{itemId}/createLink
POST /sites/{siteId}/drive/items/{itemId}/createLink
POST /users/{userId}/drive/items/{itemId}/createLink
请求标头
| 名称 | 说明 |
|---|---|
| Authorization | Bearer {token}。必需。 |
| Content-Type | application/json. Required. |
请求正文
请求正文定义应用程序正在请求的共享链接的属性。 请求应为具有以下属性的 JSON 对象。
| 属性 | 类型 | Description |
|---|---|---|
| type | String | 可选。要创建的共享链接的类型。 |
| scope | String | 可选。 要创建的链接的范围。 匿名、组织或用户。 |
| expirationDateTime | DateTimeOffset | 可选。 DateTime 格式为 yyyy-MM-ddTHH:mm:ssZ 的 String 表示权限的过期时间。 |
| 密码 | String | 可选。创建者设置的共享链接的密码。 |
| recipients | driveRecipient 集合 | 可选。 将接收共享链接访问权限的收件人的集合。 |
链接类型
type 参数允许使用以下值:
| 类型值 | 说明 |
|---|---|
| view | 创建到 driveItem 的只读链接。 |
| review | 创建 driveItem 的审阅链接。 此选项仅适用于 OneDrive for Business 和 SharePoint。 |
| edit | 创建到 driveItem 的读写链接。 |
| 嵌入 | 创建到 driveItem 的可嵌入链接。 |
| blocksDownload | 创建阻止下载到 driveItem 的只读链接。 此选项仅适用于 OneDrive for Business 和 SharePoint。 |
| createOnly | 创建 driveItem 的仅上载链接。 此选项仅适用于 OneDrive for Business 和 SharePoint 中的文件夹。 |
| addressBar | 为新建的文件创建浏览器地址栏中显示的默认链接。 仅适用于 OneDrive for Business 和 SharePoint。 组织管理员配置此链接类型是否受支持,以及此链接类型支持哪些功能。 |
| adminDefault | 创建到 driveItem 的默认链接,该链接由组织的管理员确定。 仅适用于 OneDrive for Business 和 SharePoint。 该策略由管理员为组织强制执行 |
范围类型
scope 参数允许使用以下值。
| 值 | Description |
|---|---|
| anonymous | 拥有该链接的任何人都可以访问,无需登录。 这可能包括组织外部的人员。 管理员可能会禁用匿名链接支持。 |
| 组织 | 登录到组织(租户)的任何人都可以使用该链接获取访问权限。 仅适用于 OneDrive for Business 和 SharePoint。 |
| users | 收件人集合中的特定人员可以使用链接获取访问权限。 仅适用于 OneDrive for Business 和 SharePoint。 |
响应
如果成功,此方法将在响应正文中返回单个 Permission 资源,此响应正文表示请求的共享权限。
如果为 201 Created driveItem 创建了新的共享链接,或者返回了现有链接, 200 OK 则响应将为 。
示例
示例 1:创建匿名共享链接
以下示例请求为用户的 OneDrive 中的 {itemId} 指定的 driveItem 创建共享OneDrive。 共享链接配置为只读并且可由具有该链接的任何用户使用。
请求
POST /me/drive/items/{itemId}/createLink
Content-Type: application/json
{
"type": "view",
"scope": "anonymous",
"password": "String",
"recipients": [
{
"@odata.type": "microsoft.graph.driveRecipient"
}
]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var type = "view";
var scope = "anonymous";
var password = "String";
var recipients = new List<DriveRecipient>()
{
new DriveRecipient
{
}
};
await graphClient.Me.Drive.Items["{driveItem-id}"]
.CreateLink(type,scope,null,password,null,recipients,null)
.Request()
.PostAsync();
重要
Microsoft Graph SDK 默认使用 v1.0 版本的 API,并且不支持 beta 版本中提供的所有类型、属性和 API。 有关使用 SDK 访问 beta API 的详细信息,请参阅将 Microsoft Graph SDK 与 beta API 配合使用。
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["write"],
"link": {
"type": "view",
"scope": "anonymous",
"webUrl": "https://1drv.ms/A6913278E564460AA616C71B28AD6EB6",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
},
"hasPassword": true
}
示例 2:创建公司可共享链接
OneDrive for Business 和 SharePoint 都支持公司可共享的链接。
此类链接与匿名链接类似,只不过仅适用于拥有组织的成员。
若要创建公司可共享的链接,请使用值为 organization 的 scope 参数。
请求
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "edit",
"scope": "organization"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var type = "edit";
var scope = "organization";
await graphClient.Me.Drive.Items["{driveItem-id}"]
.CreateLink(type,scope,null,null,null,null,null)
.Request()
.PostAsync();
重要
Microsoft Graph SDK 默认使用 v1.0 版本的 API,并且不支持 beta 版本中提供的所有类型、属性和 API。 有关使用 SDK 访问 beta API 的详细信息,请参阅将 Microsoft Graph SDK 与 beta API 配合使用。
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["write"],
"link": {
"type": "edit",
"scope": "organization",
"webUrl": "https://contoso-my.sharepoint.com/personal/ellen_contoso_com/...",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
}
}
示例 3:创建可嵌入链接
使用 embed 链接类型时,可以在 <iframe> HTML 元素中嵌入返回的 webUrl。创建嵌入链接时,webHtml 属性包含 <iframe> 的 HTML 代码以托管内容。
注意: 仅 OneDrive 个人版支持嵌入链接。
请求
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "embed"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var type = "embed";
await graphClient.Me.Drive.Items["{driveItem-id}"]
.CreateLink(type,null,null,null,null,null,null)
.Request()
.PostAsync();
重要
Microsoft Graph SDK 默认使用 v1.0 版本的 API,并且不支持 beta 版本中提供的所有类型、属性和 API。 有关使用 SDK 访问 beta API 的详细信息,请参阅将 Microsoft Graph SDK 与 beta API 配合使用。
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["read"],
"link": {
"type": "embed",
"webHtml": "<IFRAME src=\"https://onedrive.live.com/...\"></IFRAME>",
"webUrl": "https://onedive.live.com/...",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
}
}
注解
- 若要基于组织的默认策略和呼叫者对 driveItem 的权限创建链接,请省略 scope 和 type 参数
- 使用此操作创建的链接不会过期,除非对组织强制执行了默认过期策略。
- 链接在 driveItem 的共享权限中可见,并且可以通过 driveItem 的所有者删除。
- 链接始终指向 driveItem 的当前版本,除非 driveItem 已签出 (SharePoint) 。
反馈
提交和查看相关反馈