Autodesk перевести в SVF не удалось - PullRequest
1 голос
/ 18 июня 2020

Я выполнил шаги из этого руководства, чтобы преобразовать файл в формат svf, чтобы иметь возможность просматривать его с помощью программы просмотра autodesk. https://forge.autodesk.com/en/docs/model-derivative/v2/tutorials/prep-file4viewer/

Я пытался преобразовать файл DWG в SVF. Я выполнил шаг 1 задачи 3 без проблем, но на шаге 2, когда я делаю запрос, я получаю следующий ответ:

{"urn":"dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6YnVja2V0MTJzL3Zpc3VhbGl6YXRpb25fLV9hZXJpYWwuZHdn",
"derivatives":[{"hasThumbnail":"false","name":"visualization_-_aerial.dwg","progress":"complete",
"messages":[{"type":"error","code":"AutoCAD-InvalidFile",
"message":"Sorry, the drawing file is invalid and cannot be viewed. 
\n- Please try to recover the file in AutoCAD, and upload it again to view."},
{"type":"error","message":"Unrecoverable exit code from extractor: -1073741831",
"code":"TranslationWorker-InternalFailure"}],
"outputType":"svf","status":"failed"}],
"hasThumbnail":"false","progress":"complete","type":"manifest","region":"US","version":"1.0",
"status":"failed"}

Я попытался просмотреть файл с помощью их онлайн-средства просмотра и смог чтобы просмотреть его идеально, чтобы я знал, что с файлом все в порядке. В чем может быть возможная причина этой ошибки?

Изменить:

После того, как я получил токен доступа и создал корзину, я использовал этот запрос для загрузки файла в корзину ( Шаг 2 Задачи 2):

curl -X PUT -v 'https://developer.api.autodesk.com/oss/v2/buckets/{bucketname}/objects/visualization_-_aerial.dwg' -H 'Authorization: Bearer {TOKEN}' -H 'Accept-Encoding: gzip, deflate' --data-binary '{PATH_TO_FILE}/visualization_-_aerial.dwg'

Ответ на это 200OK.

Затем я использовал онлайн-инструмент, приведенный в руководстве, для преобразования урны в урну с кодировкой base 64.

Вот запрос на публикацию вакансии (шаг 1 задачи 3), который я отправил:

curl -X POST  'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' -H 'Authorization: Bearer {TOKEN}' -H 'x-ads-force: true' -H 'Content-Type: application/json' -d '{ "input": { "urn": "{URN}", "compressedUrn": true, "rootFilename": "visualization_-_aerial.dwg" }, "output": { "destination": { "region": "us" }, "formats": [{ "type": "svf", "views": ["2d", "3d"], "advanced": {"generateMasterViews": true} } ] } }'

ответ на это «успех»

и запрос на получение для проверки статуса перевода:

curl -X GET 'https://developer.api.autodesk.com/modelderivative/v2/designdata/{URN}/manifest' -H 'Authorization: Bearer {TOKEN}'

ответ на это я включил выше.

Файл фактически загружен в корзину, и я смог просмотреть его по адресу https://oss-manager.autodesk.io/#, но даже там он показывает, что перевод не удался.

Изменить 2: Вот изображение ответа от https://oss-manager.autodesk.io/ получить запрос манифеста (используется dev инструменты, чтобы получить это)

введите описание изображения здесь

Ответы [ 2 ]

2 голосов
/ 25 июня 2020

Судя по комментариям, добавленным к предыдущему ответу, похоже, что проблема связана с загрузкой. Как вы можете видеть в руководстве, он использует

--data-binary '@PATH_TO_DOWNLOADED_ZIP_FILE'

Символ @ важен, без него вы получите такой ответ

{
"bucketKey" : "adam",
"objectId" : "urn:adsk.objects:os.object:adam/test.dwg",
"objectKey" : "test.dwg",
"sha1" : "cb54c0750e9201bbfa6da6adad6b496bec11a111",
"size" : 27,
"contentType" : "application/x-www-form-urlencoded",
"location" : "https://developer.api.autodesk.com/oss/v2/buckets/adam/objects/test.dwg"
* Connection #0 to host developer.api.autodesk.com left intact
}

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

Однако, если я добавлю символ @ , все будет хорошо:

curl -X PUT -v 'https://developer.api.autodesk.com/oss/v2/buckets/{bucketname}/objects/test.dwg' -H 'Authorization: Bearer {TOKEN}' -H 'Accept-Encoding: gzip, deflate' --data-binary '@/Users/nagyad/Downloads/test.dwg'

Примечание: я нахожусь на Ma c, на Windows путь будет выглядеть немного иначе

Ответ На этот раз я получил:

{
"bucketKey" : "adam",
"objectId" : "urn:adsk.objects:os.object:adam/test.dwg",
"objectKey" : "test.dwg",
"sha1" : "d17e9156c948caed3a98788836e6c1f3d5fddadc",
"size" : 55727,
"contentType" : "application/x-www-form-urlencoded",
"location" : "https://developer.api.autodesk.com/oss/v2/buckets/adam/objects/test.dwg"
* Connection #0 to host developer.api.autodesk.com left intact
}

И на этот раз, когда я попытался перевести файл, это удалось.

0 голосов
/ 18 июня 2020

Измените compressedUrn на false, если вы работаете с одним файлом или если вы работаете с zip-файлом, поэтому установите значение true, также укажите rootFilename имя файла (root имя файла) в теле ответа.

...