将大文件附加到 Outlook 邮件或事件 您所在的位置:网站首页 如何传输超大文件到邮箱中的文件 将大文件附加到 Outlook 邮件或事件

将大文件附加到 Outlook 邮件或事件

2024-03-19 03:56| 来源: 网络整理| 查看: 265

将大文件附加到 Outlook 邮件或事件 项目 07/24/2023

使用 Microsoft Graph API,可将最大 150 MB 的文件附加到 Outlook 邮件或 事件项目。 根据文件大小,选择以下两种方法之一来附加文件:

如果文件大小小于 3 MB,应该针对 Outlook 项的附件导航属性执行单个 POST;了解如何针对邮件或事件执行此操作。 成功的 POST 响应包括文件附件的 ID。 如果文件大小介于 3 MB 和 150 MB 之间,则创建上传会话,并以迭代的方式使用 PUT 来上传文件的字节范围,直到完整文件上传完毕。 最后一个成功 PUT 响应中的标头包括带附件 ID 的 URL。

若要将多个文件附加到邮件,请根据每个文件的文件大小,选择相应的方法,并单独附加文件。

本文逐步介绍了第二种方法,创建并使用上传会话将大型文件附件(大小超过 3 MB)添加到 Outlook 项。 各步显示相应的邮件或事件代码。 成功上传整个文件后,文章显示获取含有文件附件 ID 的响应标头,随后显示使用附件 ID 来获取原始附件内容或附件元数据。

重要

如果要将大文件附加到共享或委派邮箱中的邮件或事件,请注意一个已知问题。

第 1 步:创建上传会话

创建上传会话,将文件附加到邮件或事件。 在输入参数 AttachmentItem 中指定文件。

成功的操作返回 HTTP 201 Created 和新的 uploadSession 实例,其中包含可在后续 PUT 操作中用于上传文件各部分的非跳转 URL。 uploadSession 提供一个临时存储位置,在此位置保存文件字节数,直到完整文件上传完毕。

响应中的 uploadSession 对象还包含 nextExpectedRanges 属性,这表明初始上传开始位置应该为 0 字节。

权限

请务必请求 Mail.ReadWrite 权限,以为邮件创建 uploadSession,并为事件创建 Calendars.ReadWrite。

新的 uploadSession 的 uploadUrl 属性中返回的非跳转 URL 经过预身份验证,包含针对 https://outlook.office.com 域中后续 PUT 查询的相应授权令牌。 该令牌会在 expirationDateTime 过期。 请勿自定义 PUT 操作的此 URL。

示例:创建邮件的上传会话 请求 HTTP C# CLI 转到 Java JavaScript PHP PowerShell Python POST https://graph.microsoft.com/v1.0/me/messages/AAMkADI5MAAIT3drCAAA=/attachments/createUploadSession Content-type: application/json { "AttachmentItem": { "attachmentType": "file", "name": "flower", "size": 3483322 } } // Code snippets are only available for the latest version. Current version is 5.x // Dependencies using Microsoft.Graph.Me.Messages.Item.Attachments.CreateUploadSession; using Microsoft.Graph.Models; var requestBody = new CreateUploadSessionPostRequestBody { AttachmentItem = new AttachmentItem { AttachmentType = AttachmentType.File, Name = "flower", Size = 3483322L, }, }; // To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp var result = await graphClient.Me.Messages["{message-id}"].Attachments.CreateUploadSession.PostAsync(requestBody);

阅读 SDK 文档 ,详细了解如何将 SDK 添加到 项目并 创建 authProvider 实例。

// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY mgc users messages attachments create-upload-session post --user-id {user-id} --message-id {message-id} --body '{\ "AttachmentItem": {\ "attachmentType": "file",\ "name": "flower",\ "size": 3483322\ }\ }\ '

阅读 SDK 文档 ,详细了解如何将 SDK 添加到 项目并 创建 authProvider 实例。

import ( "context" msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go" graphusers "github.com/microsoftgraph/msgraph-sdk-go/users" graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models" //other-imports ) graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes) requestBody := graphusers.NewItemCreateUploadSessionPostRequestBody() attachmentItem := graphmodels.NewAttachmentItem() attachmentType := graphmodels.FILE_ATTACHMENTTYPE attachmentItem.SetAttachmentType(&attachmentType) name := "flower" attachmentItem.SetName(&name) size := int64(3483322) attachmentItem.SetSize(&size) requestBody.SetAttachmentItem(attachmentItem) createUploadSession, err := graphClient.Me().Messages().ByMessageId("message-id").Attachments().CreateUploadSession().Post(context.Background(), requestBody, nil)

阅读 SDK 文档 ,详细了解如何将 SDK 添加到 项目并 创建 authProvider 实例。

// Code snippets are only available for the latest version. Current version is 6.x GraphServiceClient graphClient = new GraphServiceClient(requestAdapter); com.microsoft.graph.users.item.messages.item.attachments.createuploadsession.CreateUploadSessionPostRequestBody createUploadSessionPostRequestBody = new com.microsoft.graph.users.item.messages.item.attachments.createuploadsession.CreateUploadSessionPostRequestBody(); AttachmentItem attachmentItem = new AttachmentItem(); attachmentItem.setAttachmentType(AttachmentType.File); attachmentItem.setName("flower"); attachmentItem.setSize(3483322L); createUploadSessionPostRequestBody.setAttachmentItem(attachmentItem); var result = graphClien().messages().byMessageId("{message-id}").attachments().createUploadSession().post(createUploadSessionPostRequestBody);

阅读 SDK 文档 ,详细了解如何将 SDK 添加到 项目并 创建 authProvider 实例。

const options = { authProvider, }; const client = Client.init(options); const uploadSession = { AttachmentItem: { attachmentType: 'file', name: 'flower', size: 3483322 } }; await client.api('/me/messages/AAMkADI5MAAIT3drCAAA=/attachments/createUploadSession') .post(uploadSession);

阅读 SDK 文档 ,详细了解如何将 SDK 添加到 项目并 创建 authProvider 实例。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有