Autodesk Design Automation API DWG в PDF с использованием Dropbox - PullRequest
0 голосов
/ 01 июня 2018

Здравствуйте. Я изо всех сил пытаюсь найти рабочий пример того, как преобразовать файл 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.

Я думаю, что это связано со вторым определенным мной заголовком, чтобы указатьфайл для загрузки или выгрузки.Мне непонятно, как правильно установить это значение.Если я использую API Dropbox API без Design Automation API, это работает.Я могу определить заголовок с именем Dropbox-API-Arg и определить путь для загрузки / выгрузки.

Любая помощь будет принята с благодарностью.Thankyou

Ответы [ 3 ]

0 голосов
/ 02 июня 2018

EDITED Либо вы можете передать заголовок Dropbox-API-Arg, как показано ниже

"Name" : "Dropbox-API-Arg",
"Value" : "{\"path\":\"/test/test.pdf\", \"mode\":\"add\"}"

в полезной нагрузке.

Или также будет работать передача строки, закодированной в arg.

Используйте следующую полезную нагрузку для работы с Dropbox с помощью Forge Design Automation.Вам нужно передать параметр Arg вместо заголовка Dropbox-API-Arg.

arg={"path":"/result.pdf"}, закодированный в URL как "arg=%7B%22path%22%3A%22%2Fresult.pdf%22%7D"

Например:

Для публикацииresult.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"
}
0 голосов
/ 05 июня 2018

Мы улучшили Design Automation, так что теперь использование заголовка 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"
}
0 голосов
/ 01 июня 2018

Проблема в том, что мы ожидаем, что «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"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...