Вариант использования очень прост: у нас есть файлы Autodesk Revit, которые размещены в Autodesk Construction Cloud (Docs), и мы хотим преобразовать их в формат IFC. Пользователи должны иметь возможность загрузить результирующий IFC из ACC Docs.
Для этого мы успешно использовали производная модель API (задание POST) для преобразования файла в формат IFC. Используя конечную точку ПОЛУЧИТЬ {urn}/манифест, мы получаем производные urns, которые мы можем использовать для загрузки ifc с конечной точкой ПОЛУЧИТЬ {urn}/манифест/{derivativeurn} .
Однако мы также хотим, чтобы файл имел статус появляться в ACC Docs, чтобы пользователи могли загрузить его оттуда.
Мы попытались использовать производный urn (например, urn:adsk.viewing:fs.file:dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6d2lwLmRtLmVtZWEuMi80NjdmOGQzNC03ZDZhLTQ2YzEtOTNhYy04ZWQ2NTk3YmE1ZWEucnZ0/output/Resource/IFC/pr2021_host.host.) и попытались создать с ним новый элемент документации ACC, используя конечную точку POST-проекты/:project_id/items . Однако это приводит к коду состояния 500 (ошибка сервера).
Есть ли способ сделать это без необходимости сначала загружать файл с конечной точки ПОЛУЧИТЬ {urn}/манифест/{derivativeurn}, затем создавать место хранения ( POST-проекты/:project_id/хранилище ), загружать файл с помощью ПОСТАВЬТЕ ведра/:bucketKey/objects/:objectKey и, наконец, создавать версию элементов с помощью POST-проекты/:project_id/items? Это кажется очень сложным, учитывая, что уже есть место хранения (= производная урна).
Я не думаю, что есть способ отправить производный результат (в вашем случае файл IFC) непосредственно в OSS. Вам нужно будет сначала загрузить файл, а затем загрузить его в OSS, используя ПОСТАВЬТЕ ведра/:bucketKey/objects/:objectKey.
Если вы беспокоитесь о производительности и использовании памяти, вы можете попробовать использовать потоки, т. е. получить файл IFC из службы производных моделей в виде читаемого потока и перенаправить его на запрос загрузки OSS.