如何解决无法使用MS Graph API上传大型附件
我正在尝试使用Microsoft Graph API将大型附件添加到电子邮件中。该文档尚不清楚图api的非beta版的实际功能是什么,但这是我到目前为止已经尝试过的功能。 (在所有这些示例中,“ this.client”都是Microsoft Auth Provider的实例,并已根据MS图形api进行了验证)
const uploadSession = await LargeFileUploadTask.createUploadSession(
this.client,`/me/messages/${draftId}/attachments/createUploadSession`,{
AttachmentItem: {
'@microsoft.graph.conflictBehavior': 'fail',name: file.name,attachmentType: 'file',size: file.size,},}
);
const uploadTask = await new LargeFileUploadTask(this.client,fileObject,uploadSession);
await uploadTask.upload();
此方法的问题在于,即使LargeFileUploadTask类直接来自@microsoft/microsoft-graph-client
包,响应URL还是用于旧的Outlook REST api,而不是图api。由于我没有REST api的令牌,因此请求失败,并显示消息“受众声明值无效'aud'”。
1a。我也尝试过手动滚动,而没有使用LargeFileUploadTask类,并且遇到了同样的问题。后续PUT请求返回的URL用于旧的Outlook REST API。
const payload = {
AttachmentItem: {
attachmentType: 'file',};
const uploadSession = await this.client
.api(`/me/messages/${draftId}/attachments/createUploadSession`)
.post(payload);
// uploadSession.url is still outlook.com,not graph.microsoft.com
const options = {
fileName: file.name,rangeSize: 1024 * 1024,};
const uploadTask = await OneDriveLargeFileUploadTask.create(client,file,options);
const attachment = await uploadTask.upload();
await this.client.api(`/me/messages/${draftId}/attachments`).post(attachment);
文件已成功上传到OneDrive,但是在/ attachments端点(代码段的最后一行)中,POST请求出现以下错误。
"The property 'SourceUrl' is required when creating the entity."
据我所知,仅beta图形api支持sourceUrl,而我并未使用它。
是否可以通过Microsoft Graph API来实现此功能?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。