使用Autocad api TranslationWorker

时间:2017-02-14 13:10:08

标签: autodesk-forge

我无法上传简单的dwg并使用forge API中的TranslationWorker将其转换为svf。我正在使用autocad 2014并创建一个带圆圈的简单绘图并将其另存为.dwg。

我在windows中使用命令行和以下curl命令:

curl -v "https://developer.api.autodesk.com/oss/v2/buckets/kumkortbucket/objects/sirkel.dwg" -X "PUT" -H "Authorization: Bearer OAUTH_TOKEN" -H "Content-Type: application/octet-stream" -T "‪C:\Users\DAN\Documents\Testfiler\sirkel.dwg"

产生以下结果:

HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 200 OK
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: Authorization, Accept-Encoding, Range,Content-Type
< Access-Control-Allow-Methods: GET
< Access-Control-Allow-Origin: *
< Content-Type: application/json; charset=utf-8
< Date: Tue, 14 Feb 2017 12:56:38 GMT
< Server: Apigee Router
< Content-Length: 355
< Connection: keep-alive
<
{
  "bucketKey" : "kumkortbucket",
  "objectId" : "urn:adsk.objects:os.object:kumkortbucket/sirkel.dwg",
  "objectKey" : "sirkel.dwg",
  "sha1" : "78f92dc0a364814756cfa9392d7fa95aecf0916b",
  "size" : 31548,
  "contentType" : "application/octet-stream",
  "location" : "https://developer.api.autodesk.com/oss/v2/buckets/kumkortbucket/objects/sirkel.dwg"
}* Connection #0 to host developer.api.autodesk.com left intact

然后我使用POST作业命令

转换它
curl -X "POST" -H "Authorization: Bearer OAUTH_TOKEN" -H "Content-Type: application/json" -v "https://developer.api.autodesk.com/modelderivative/v2/designdata/job" -d "{\"input\": {\"urn\": \"dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a3Vta29ydGJ1Y2tldC9zaXJrZWwuZHdn\"},\"output\": {\"formats\": [{\"type\": \"svf\",\"views\": [\"2d\",\"3d\"]}]}}"

使用GET命令检查结果我得到以下结果:

{&#34;类型&#34;:&#34;清单&#34;&#34; hasThumbnail&#34;:&#34;假&#34;&#34;状态&#34;:& #34;失败&#34;&#34;进度&#34;:&#34;完成&#34;&#34;区&#34;:&#34;美国&#34;&#34;骨灰盒&# 34;:&#34; dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a3Vta29ydGJ1Y2tldC9zaXJrZWwuZHdn&#34;&#34;版本&#34;:&#34; 1.0&#34;&#34;衍生物&#34;:[{&#34;名称&#34; :&#34; sirkel.dwg&#34;&#34; hasThumbnail&#34;:&#34;假&#34;&#34;状态&#34;:&#34;失败&#34;&# 34;进度&#34;:&#34;完整&#34;&#34;邮件&#34;:[{&#34;类型&#34;:&#34;错误&#34;&#34;代码& #34;:&#34; AutoCAD-InvalidFile&#34;,&#34; message&#34;:&#34;抱歉,图纸文件无效,无法查看。 \ n-请尝试在AutoCAD中恢复该文件,然后重新上传以查看。&#34;},{&#34;输入&#34;:&#34;错误&#34;,&#34;消息&# 34;:&#34;提取器中不可恢复的退出代码:-1073741831&#34;,&#34;代码&#34;:&#34; TranslationWorker-InternalFailure&#34;}],&#34; outputType&#34;: &#34; svf&#34;}]} *连接#0以托管developer.api.autodesk.com完好无损

我无法弄清楚我做错了什么。我可以在autocad和在线查看器中查看该文件。

干杯。

编辑:

这是一个上传有问题的文件 http://www.filedropper.com/ekbsroplain

1 个答案:

答案 0 :(得分:0)

这是我做的(整个过程):

curl -v 'https://developer.api.autodesk.com/authentication/v1/authenticate' -X 'POST' -H 'Content-Type: application/x-www-form-urlencoded' -d 'client_id=****&client_secret=****&grant_type=client_credentials&scope=data:read data:write data:create bucket:create bucket:read'

curl -v 'https://developer.api.autodesk.com/oss/v2/buckets' -X 'POST' -H 'Content-Type: application/json' -H 'Authorization: Bearer TOKEN' -d '{"bucketKey":"kumkortbucket170214","policyKey":"transient"}'

注意我没有内容类型和内容长度上传,实际上不需要:

curl -v 'https://developer.api.autodesk.com/oss/v2/buckets/kumkortbucket170214/objects/drawing1.dwg' -X 'PUT' -H 'Authorization: Bearer TOKEN' -T '/Users/augustogoncalves/Desktop/Drawing1.dwg'

最后是POST JOB:

curl -X 'POST' -H 'Authorization: Bearer TOKEN' -H 'Content-Type: application/json' -v 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' -d '{"input":{"urn":"dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a3Vta29ydGJ1Y2tldDE3MDIxNC9kcmF3aW5nMS5kd2c="},"output":{"formats":[{"type": "svf","views": ["2d","3d"]}]}}'

工作得很好

{  
   "result":"success",
   "urn":"dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6a3Vta29ydGJ1Y2tldDE3MDIxNC9kcmF3aW5nMS5kd2c",
   "acceptedJobs":{  
      "output":{  
         "formats":[  
            {  
               "type":"svf",
               "views":[  
                  "2d",
                  "3d"
               ]
            }
         ]
      }
   }
}