Autodesk Design Automation API DWG в PDF с использованием Dropbox
Здравствуйте, я изо всех сил пытаюсь найти рабочий пример того, как преобразовать файл DWG в файл PDF. Я использую Autodesk Design Automation API и Dropbox. Я пытаюсь использовать следующую команду, чтобы разместить WorkItem
{
"Arguments":{
"InputArguments":[
{
"Resource": "https://content.dropboxapi.com/2/files/download",
"Name": "HostDwg",
"Headers":[
{
"Name":"Authorization",
"Value":"Bearer xxxxxxxxxxxxxxxxxxxxxxxx"
},{
"Name":"Dropbox-API-Arg",
"Value" : {"path":"/original.dwg"}
}
]
}
],
"OutputArguments":[
{
"Name": "Result",
"HttpVerb": "PUT",
"Resource": "https://content.dropboxapi.com/2/files/upload",
"StorageProvider": "Generic",
"Headers":[
{
"Name":"Authorization",
"Value":"Bearer xxxxxxxxxxxxxx"
},{
"Name":"Dropbox-API-Arg",
"Value": {"path":"/test.pdf"}
}
]
}
]
}, "ActivityId": "PlotToPDF","Id": ""}
К сожалению я получаю следующее сообщение об ошибке
An unexpected 'StartObject' node was found for property named 'Value' when reading from the JSON reader. A 'PrimitiveValue' node was expected.
Я думаю, что это связано со вторым заголовком, который я определил, чтобы указать файл для загрузки или выгрузки. Мне непонятно, как правильно установить это значение. Если я использую Dropbox API без Design Automation API, это работает. Я могу определить заголовок с именем Dropbox-API-Arg и определить путь для загрузки / выгрузки.
Любая помощь будет оценена. Спасибо
3 ответа
Проблема в том, что мы ожидаем, что "Value" будет строкой, а вы передаете объект. Вот рабочий пример:
{
"Arguments": {
"InputArguments": [
{
"Resource": "http://download.autodesk.com/us/samplefiles/acad/blocks_and_tables_-_imperial.dwg",
"Name": "HostDwg"
}
],
"OutputArguments": [
{
"Name": "Result",
"HttpVerb": "POST",
"Resource": "https://content.dropboxapi.com/2/files/upload",
"Headers" : [
{
"Name" : "Authorization",
"Value" : "Bearer ..."
},
{
"Name":"Content-Type",
"Value":"application/octet-stream"
},
{
"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"
}
]
}
]
},
"ActivityId": "PlotToPDF"
}
Мы улучшили автоматизацию проектирования, чтобы теперь использовать Dropbox-API-Arg
заголовок работает как для загрузки, так и для скачивания. Следующее преобразует DWG в PDF в вашей учетной записи Dropbox:
{
"Arguments": {
"InputArguments": [
{
"Resource": "https://content.dropboxapi.com/2/files/download",
"Name": "HostDwg",
"Headers" : [
{
"Name" : "Authorization",
"Value" : "Bearer ..."
},
{
"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.dwg\"}"
}
]
}
],
"OutputArguments": [
{
"Name": "Result",
"HttpVerb": "POST",
"Resource": "https://content.dropboxapi.com/2/files/upload",
"Headers" : [
{
"Name" : "Authorization",
"Value" : "Bearer ..."
},
{
"Name" : "Content-Type",
"Value" : "application/octet-stream"
},
{
"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"
}
]
}
]
},
"ActivityId": "PlotToPDF"
}
ИЗДАНО Либо вы можете пройти Dropbox-API-Arg
заголовок, как показано ниже
"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"
в полезной нагрузке.
Или, проходя arg
URL-кодированная строка также будет работать.
Используйте следующую полезную нагрузку для работы с Dropbox с помощью Forge Design Automation. Вам нужно передать параметр Arg вместо заголовка Dropbox-API-Arg.
arg={"path":"/result.pdf"}
закодировано в URL как "arg=%7B%22path%22%3A%22%2Fresult.pdf%22%7D"
Например:
Чтобы опубликовать результат. PDF в Dropbox.
{
"Arguments": {
"InputArguments": [
{
"Resource": "http://download.autodesk.com/us/samplefiles/acad/blocks_and_tables_-_metric.dwg",
"Name": "HostDwg"
}
],
"OutputArguments": [
{
"Name": "Result",
"HttpVerb": "POST",
"Resource": "https://content.dropboxapi.com/2/files/upload?arg=%7B%22path%22%3A%22%2Fresult.pdf%22%7D",
"StorageProvider": "Generic",
"Headers": [
{
"Name":"Authorization",
"Value":"Bearer blahblahblah"
},
{"Name":"Content-Type",
"Value":"application/octet-stream"
}
]
}
]
},
"ActivityId": "PlotToPDF"
}