Autodesk Forge-使用curl下载文件

Autodesk Forge-使用curl下载文件,curl,command-line,autodesk-forge,Curl,Command Line,Autodesk Forge,我正在进行一个项目,通过python脚本将.sldprt转换为.obj文件。我正在学习教程。在最后一部分中,我必须将翻译后的文件下载到本地机器上。下载文件的命令行命令如下步骤5所示 sudo curl -X "GET" -H "Authorization: Bearer $TOKEN" -v "https://developer.api.autodesk.com/modelderivative/v2/designdata/$SURN/manifest/$OURN" -o $OUTFILE 其中

我正在进行一个项目,通过python脚本将.sldprt转换为.obj文件。我正在学习教程。在最后一部分中,我必须将翻译后的文件下载到本地机器上。下载文件的命令行命令如下步骤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错误错误请求。错误的屏幕截图如下所示

几天前,我确实执行了相同的命令并适当地下载了文件,但是,我不记得有什么不同。有人能告诉我请求格式有什么问题吗


我相信这与无效令牌/SURN/OURN等无关,因为在这种情况下,我不会出现无效消息格式错误。

要从OSS下载对象,需要使用如下命令:

curl-xgethttps://developer.api.autodesk.com/oss/v2/buckets/mybucket/objects/myobjectref -H授权:$bearer-o myfile.ext 要获取对象清单及其所有派生项,需要调用:

curl-xgethttps://developer.api.autodesk.com/modelderivative/v2/designdata/$urn/manifest-H授权:$bearer 如果清单不存在,此清单请求应返回空响应和404状态代码。添加-v选项以查看404错误。 如果衍生工具不存在,则…/$urn/manifest/$derivativeUrn请求应返回空响应和400状态码,该代码不是有效的请求

现在,为了完成我的回答,清单是一个JSON响应,它描述了如何将对象转换为各种派生,以及可以提取哪些内容,而对象是所有派生的种子文件

现在,如果你想下载一个导数,例如OBJ,你需要得到指向OBJ平移的导数,并调用:

curl-xgethttps://developer.api.autodesk.com/modelderivative/v2/designdata/$urn/manifest/$derivativeUrn-H授权:$bearer $urn指向种子文件,$derivativeUrn指向可以在清单文件中找到的obj派生

编辑:我刚刚在上面的屏幕截图上注意到,您使用的是base64编码的urn,而不是安全的base64编码的urn。这实际上是不正确的,因为base64编码的字符串可以包含像“+/=”这样的字符,这在HTTP请求中具有不同的含义。“+”表示空格,“/”表示动词分隔符,“=”表示变量赋值。
请删除上面请求中的尾随“=”,它应该可以正常工作。

感谢您的回复。我尝试了上述方法,输出文件总是76字节长,并且包含以下错误:{诊断:请求的派生不属于设计数据。}这非常奇怪。你确定你的金塔吗?你能给我发电子邮件吗?在cyrille@autodesk。通用域名格式。我会看看并告诉你我在上述地址给你发电子邮件的原因。我对派生的urn非常确定。刚刚通过电子邮件回复了一个复杂的答案,但我刚刚在您的屏幕截图上注意到,您使用的是base64编码字符串与安全base64编码字符串。这可能就是原因。请删除解决问题的尾部=,是的。你能把这个作为答案贴出来让我接受吗?