autodesk-forge - GEN_SIZE_INVALID,详细信息:传递的对象大小太大,无法处理
问题描述
当使用 autodesk-forge 的 web 服务通过资源“data/v1/projects/{PROJECT_ID}/versions?copyFrom={ESCAPED_VERSION_ID}”复制文件版本时,以下 HttpResponse-Content 的实际含义是什么?
{"jsonapi":{"version":"1.0"},
"errors":[{
"id":"3a6cb28b-6656-451c-acfb-1c68ddb24a45",
"status":"400",
"code":"ERR_BAD_INPUT",
"title":"The request has invalid header or body",
"detail":"GEN_SIZE_INVALID, details: The object size passed is too big for processing."
}]}
可以引用的版本数量或类似内容是否有限制?
这是带有虚拟值的有效负载:
{
"jsonapi": {
"version": "1.0"
},
"data": {
"type": "versions",
"relationships": {
"refs": {
"data": [
{
"type": "versions",
"id": "{{VersionURNforLink1}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink2}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink3}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink4}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink5}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink6}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink7}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink8}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink9}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink10}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink11}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink12}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink13}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink14}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink15}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink16}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink17}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink18}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink19}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink20}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink21}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink22}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink23}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
},
{
"type": "versions",
"id": "{{VersionURNforLink24}}",
"meta": {
"refType": "xrefs",
"direction": "from",
"extension": {
"type": "xrefs:autodesk.core:Xref",
"version": "1.1",
"data": {
"nestedType": "overlay"
}
}
}
}
]
}
}
}
}
解决方案
From all the data we've been able to gather so far: There is in fact a limit on how many files can be referenced directly, which seems to be 50.
The reason it occurred in so many places for us when we didn't have any files referencing nearly that amount of other plans, was how the "CopyFrom"-functionality works.
Example on how to reproduce the problem:
Given "plan A" and "plan B" ("B" referencing "A"), upload both files and create their initial items/versions. Now do the following:
1.) re-upload "A" and create a new version.
2.) use "CopyFrom" on the latest version of "B" and define the reference to the latest version of "A".
Since "CopyFrom" adds references instead of replacing them, version #2 of "B" now holds two references. One towards the initial version #1 of "A" and one to the latest version of "A". Repeat these steps enough times and you'll eventually run into this issue.
Solution:
Even though nothing except one reference has changed on "B", one needs to reupload the file defining all required references so version #N of "B" only references version #N of "A". (Be wary that this behaviour of course may change in the future!)
推荐阅读
- json - 使用一些关键字从 JQ 构建 json 路径
- javascript - 使用 JavaScript/AJAX 将 PDF 从客户端保存到服务器
- c++ - C/C++ 编译器会通过重用最近计算的函数结果来优化代码吗?
- python-3.x - Matplotlib 如何为四个二维直方图绘制 1 个颜色条
- php - 函数 password_verify() 在应该返回 true 时返回 false
- c++ - Microsoft Access ODBC 驱动程序管理器函数序列错误
- d3.js - 如何在 D3.js 中的地图上绘制纬度/经度对
- html - 只有屏幕和(最小宽度:0px)和(最大宽度:327px)不起作用
- node.js - 如何在没有 root 访问权限的情况下部署 NodeJS 应用程序,以便在服务器重新启动后保持在线?
- php - 为什么我的一些导航项目在活动时带有下划线,而其他导航项目没有?