我正在尝试使用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限制。我当前的问题有什么解决方法吗?
答案 0 :(得分:1)
简短的答案是此文档不正确。较长的答案需要对Graph本身有一点了解。
Graph是一个API聚合器。它接收传入的请求,将它们路由到一个或多个基础API,然后对响应进行规范化,以便最终开发人员在端点之间获得一致的结果。
在这种情况下,基础API是OneNote REST API。在文档中提到的限制就OneNote API而言是准确的,但是由于该请求是由Graph处理的,因此您在达到该请求之前将Graph的较小4 MB限制发送给底层API。
将原始文档移植到Graph时,很可能无意中错过了文档错误。我已提起documentation issue,因此可以更正。