Autodesk Forge - скачать файл с помощью curl - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над проектом по конвертации .sldprt в файл .obj с помощью скрипта Python. Я следую этому учебнику. В последней части я должен загрузить переведенный файл на свой локальный компьютер. Команда командной строки для загрузки файла выглядит следующим образом (ШАГ 5)

sudo curl -X "GET" -H "Authorization: Bearer $TOKEN" -v "https://developer.api.autodesk.com/modelderivative/v2/designdata/$SURN/manifest/$OURN" -o $OUTFILE

где $ TOKEN - токен доступа, $ SURN - загруженный файл URN, а OURN - URL-адрес выходного файла, а $ OUTFILE - имя выходного файла (в данном случае output.obj)

Я понял, что выполнение вышеуказанной команды дает мне ошибку HTTP 400 (неверный запрос). Скриншот ошибки показан ниже. enter image description here

Пару дней назад я выполнил ту же команду и загрузил файл соответствующим образом, однако я не помню, что было другим. Может кто-нибудь подсказать мне, что не так с форматом запроса?

Я полагаю, что это не имеет ничего общего с недопустимыми символами TOKEN / SURN / OURN и т. Д., Потому что в этом случае я не получил бы ошибку неверного формата сообщения.

1 Ответ

1 голос
/ 15 мая 2019

Чтобы загрузить объект из OSS, вам нужно использовать такую ​​команду:

curl -X GET https://developer.api.autodesk.com/oss/v2/buckets/mybucket/objects/myobjectref -H "Authorization: $bearer" -o myfile.ext

Чтобы получить манифест объекта и все его производные, вам нужно вызвать:

curl -X GET https://developer.api.autodesk.com/modelderivative/v2/designdata/$urn/manifest -H "Authorization: $bearer"

Этот запрос манифеста должен вернуть вам пустой ответ и код состояния 404, если манифест не существует. Добавьте опцию -v, чтобы увидеть ошибку 404. Запрос ... / $ urn / manifest / $ производный_рн должен возвращать пустой ответ и код состояния 400 (не действительный запрос), если производный не существует.

Теперь, чтобы завершить мой ответ, манифест представляет собой ответ JSON, который описывает, как объект был переведен в различные производные и что доступно для извлечения по сравнению с объектом, который является исходным файлом всех производных.

Теперь, если вы хотите скачать одно из производных (например, OBJ), вам нужно получить URN производного (тот, который указывает на перевод OBJ) и вызвать:

curl -X GET https://developer.api.autodesk.com/modelderivative/v2/designdata/$urn/manifest/$derivativeUrn -H "Authorization: $bearer"

$ urn указывает на начальный файл, $ DerinUrn указывает на производную obj, которую вы можете найти в файле манифеста.

Редактирует: я только что заметил на скриншоте выше, что вы используете урну с кодировкой base64 против безопасной урны с кодировкой base64. Это на самом деле не правильно, поскольку строка в кодировке base64 может содержать символы типа «+ / =», которые имеют другое значение в запросе HTTP. «+» будет означать пробел, «/» будет означать разделитель глаголов, а «=» присвоение переменной. Удалите завершающий символ '=' в вашем запросе выше, и он должен работать нормально.

...