尝试将PDF文件上传到OneNote时出现错误“请求太大(413)”

时间:2019-04-09 11:52:33

标签: objective-c microsoft-graph onenote onenote-api

我正在尝试使用Microsoft Graph REST API(Objective-C)在OneNote中创建新页面。这些新页面应包含PDF文档作为附件。

POST操作成功后,PDF文件小于4MB。但是,超过4MB的文件操作失败,并显示错误消息request too large (413)和以下响应:

{
  "error": {
    "code": "BadRequest",
    "message": "Maximum request length exceeded.",
    "innerError": {
      "request-id": "269c663c-9289-47cc-a833-d471b7b867f6",
      "date": "2019-04-09T09:35:49"
    }
  }
}

使用的终点是:https://graph.microsoft.com/v1.0/me/onenote/sections/XXX/pages


Microsoft在documentation for Graph and OneNote中声明:

  
      
  • POST的总大小限制为〜70 MB,其中包括图像,文件和其他数据。实际限制受下游编码的影响,因此没有固定的字节数限制。超出限制的请求可能会产生不可靠的结果。
  •   
  • 每个数据部分(包括部分标题)的限制为25 MB。超出限制的数据部分将被Microsoft Graph拒绝。
  •   

我在OneNote的Microsoft Graph文档中找不到POST请求的4MB限制。我当前的问题有什么解决方法吗?

1 个答案:

答案 0 :(得分:1)

简短的答案是此文档不正确。较长的答案需要对Graph本身有一点了解。

Graph是一个API聚合器。它接收传入的请求,将它们路由到一个或多个基础API,然后对响应进行规范化,以便最终开发人员在端点之间获得一致的结果。

在这种情况下,基础API是OneNote REST API。在文档中提到的限制就OneNote API而言是准确的,但是由于该请求是由Graph处理的,因此您在达到该请求之前将Graph的较小4 MB限制发送给底层API。

将原始文档移植到Graph时,很可能无意中错过了文档错误。我已提起documentation issue,因此可以更正。