Манифест Autodesk Forge возвращает только миниатюру и без guid - svf Задание не запущено - PullRequest
0 голосов
/ 09 мая 2019

ОБНОВЛЕНИЕ: удаление флага x-ads-force: true из заданий после публикации устраняет эту проблему

У меня есть код, написанный на прошлой неделе, который проходит процесс извлечения метаданных из файла Fusion 360 с использованием forge. Этот код сработал - был создан эскиз и файл svf. Метаданные вернули guid, и я смог извлечь свойства.

Возвращаясь сегодня, этот процесс больше не работает. Задание для завершения эскиза запускается, и эскиз действительно создается. Кажется, что работа по созданию svf также завершена правильно, но манифест возвращает только один элемент - миниатюру.

Когда я извлекаю метаданные, guid отсутствует.

Я хочу повторить, что я написал код на прошлой неделе, и он работал нормально. Это было только в финальном тестировании, что оно не работает.

$ urn - это базовая кодированная урна, которая отлично подходит для создания миниатюр.

    // Set up the data object
    $metaData = '{
                    "input" : {
                        "urn" :"'.$urn.'"},
                    "output" :{ 
                        "formats" : [{"type":"svf",
                                      "views":["2d", "3d"]
                                    }]
                    }
                }'; 


    // POST THE JOBS
    $url = 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  $metaData );
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Bearer '.$token,
        'x-ads-force:true',
        'content-Type: application/json'
    ));

    $response = curl_exec ($ch);
    $err = curl_error($ch);
    curl_close ($ch);


    $jobStatus = "pending";
    $numSteps = 0;


    // STAY IN LOOP UNTIL STATUS IS GOOD
    while ( ( $jobStatus != "good" ) && ( $jobStatus != "bad" ) && ( $numSteps < 50 ) )
    {
        sleep(10);
        $url = 'https://developer.api.autodesk.com/modelderivative/v2/designdata/'.$urn.'/manifest';

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Authorization: Bearer '.$token
        ));

        $response = curl_exec ($ch);
        $err = curl_error($ch);
        curl_close ($ch);

        $response = json_decode($response);

        if ( $response->status == "success" )
        {
            $jobStatus = "good";

        }else if ( ( $response->status == "failed" ) || ( $response->status == "timeout" ) )
        {
            $jobStatus = "bad";
        }

        $numSteps = $numSteps + 1;

    }

Ответ здесь следующий:

object(stdClass)#769 (8) {
  ["type"]=>
  string(8) "manifest"
  ["hasThumbnail"]=>
  string(4) "true"
  ["status"]=>
  string(7) "success"
  ["progress"]=>
  string(8) "complete"
  ["region"]=>
  string(2) "US"
  ["urn"]=>
  string(80) "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLk1UTm1FS2RBUTc2VWVVVFVhVUtlRFE_dmVyc2lvbj01"
  ["version"]=>
  string(3) "1.0"
  ["derivatives"]=>
  array(1) {
    [0]=>
    object(stdClass)#801 (4) {
      ["status"]=>
      string(7) "success"
      ["progress"]=>
      string(8) "complete"
      ["outputType"]=>
      string(9) "thumbnail"
      ["children"]=>
      array(1) {
        [0]=>
        object(stdClass)#717 (6) {
          ["guid"]=>
          string(36) "e163169a-4ada-4e9c-99c8-8e8083cc9969"
          ["type"]=>
          string(8) "resource"
          ["urn"]=>
          string(124)     "urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLk1UTm1FS2RBUTc2VWVVVFVhVUtlRFE_dmVyc2lvbj01/output/256x256.png"
          ["resolution"]=>
          array(2) {
            [0]=>
            int(256)
            [1]=>
            int(256)
          }
          ["mime"]=>
          string(9) "image/png"
          ["role"]=>
          string(9) "thumbnail"
        }
      }
    }
  }
}

Конечная точка метаданных затем возвращает пустой массив.

Не похоже, что задание svf запущено?

1 Ответ

0 голосов
/ 10 мая 2019

ОБНОВЛЕНИЕ: удаление флага x-ads-force: true из заданий поста устраняет эту проблему

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

...