GEN_SIZE_INVALID, подробности: Переданный размер объекта слишком велик для обработки

#autodesk-forge #autodesk-model-derivative

Вопрос:

Что на самом деле означает следующий HttpResponse-Контент при использовании веб-сервиса autodesk-forge для копирования версии файла через ресурс «данные/v1/проекты/{PROJECT_ID}/версии?copyFrom={ESCAPED_VERSION_ID}»?

 {"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"
                }
              }
            }
          }
        ]
      }
    }
  }
}
 

Комментарии:

1. Это первый раз, когда я вижу эту ошибку. Не могли бы вы поделиться своим телом ПОСТА и указать, какую конечную точку API вы используете?

2. @EasonKang Я боюсь, что размер комментария слишком мал, чтобы публиковать полезную нагрузку. Чтобы несколько ответить на ваш вопрос: Мы публикуем полезную нагрузку, описанную в forge.autodesk.com/blog/… против ресурса «данные/v1/проекты/{PROJECT_ID}/версии?copyFrom={ESCAPED_VERSION_ID}», ссылающегося на 24 другие версии файлов.

3. Хорошо, может быть, добавлено в текст вашего вопроса выше. в любом случае… Я связываюсь с нашей инженерной командой. Тем временем, могу я узнать общий размер ваших 24 других версий файлов?

4. И в какой папке находятся эти файлы, Plans или Project Files ?

5. Если есть какая-либо информация, которую вы не можете опубликовать публично, вы можете forge (dot) help (at) autodesk (dot) com вместо этого связаться с нами. Было бы здорово, если бы вы могли поделиться телом ПОСТА, которое вы использовали для вызова ПОСТА data/v1/projects/{PROJECT_ID}/versions?copyFrom={ESCAPED_VERSION_ID} . если это так, мы можем проверить внутренний журнал на предмет возможных первопричин.

Ответ №1:

Из всех данных, которые нам удалось собрать до сих пор: на самом деле существует ограничение на количество файлов, на которые можно ссылаться напрямую, которое, по-видимому, составляет 50.
Причина, по которой это произошло во многих местах для нас, когда у нас не было файлов, ссылающихся почти на такое количество других планов, заключалась в том, как работает функция «Копировать из».

Пример того, как воспроизвести проблему:
Учитывая «план A» и «план B» («B» ссылается на «A»), загрузите оба файла и создайте их начальные элементы/версии. Теперь сделайте следующее:
1.) повторно загрузите «A» и создайте новую версию.
2.) используйте «copyFrom» для последней версии «B» и определите ссылку на последнюю версию «A».

Поскольку «copyFrom» добавляет ссылки вместо их замены, версия № 2 «B» теперь содержит две ссылки. Один к начальной версии № 1 «А» и один к последней версии «А». Повторите эти шаги достаточное количество раз, и вы в конечном итоге столкнетесь с этой проблемой.

Решение:
Несмотря на то, что в «B» ничего, кроме одной ссылки, не изменилось, необходимо повторно загрузить файл, определяющий все необходимые ссылки, поэтому версия #N «B» ссылается только на версию #N «A». (Будьте осторожны, что это поведение, конечно, может измениться в будущем!)