Revit运行得很好,我也正确地转换了设计自动化。我已经用本地调试器调试了它。效果很好。所以我可以说app包做得很好。
现在进入web应用程序代码,它的工作非常完美,直到最后一行"workItemStatus“。我需要一个rfa文件和一个大Json文件作为输入文件,以运行代码。两者加在一起将是1毫巴的大小。但代码是堆栈(无休止地等待)在上传文件时,工作项不启动。我在另一篇堆栈溢出文章中看到,Forge不允许超过16 by的上传到oss桶.(网址= string.Format("https://developer.api.autodesk.com/oss/v2/buckets/{0}/objects/{1}",bucketKey,inputFileNameOSS)这篇文章说,我需要将更大的文件上传到另一个云服务中,并使用已登录的Url而不是Forge存储桶。
在调试时,代码看起来是正确的,并且是堆栈的,当它到达WorkItemStatus workItemStatus = await workItemStatus行时
我已经调试了代码,在DesignAutomationController.cs "StartWorkItem“中,它看起来很好地工作直到”StartWorkItem“值。每个键和值看起来都是完美传递的。是因为文件大小吗?由于Json文件很大,我像其他输入(..rfa/..rvt)文件一样上传它。
string callbackUrl = string.Format("{0}/api/forge/callback/designautomation?id={1}&outputFileName={2}", OAuthController.GetAppSetting("FORGE_WEBHOOK_URL"), browerConnectionId, outputFileNameOSS);
WorkItem workItemSpec = new WorkItem()
{
ActivityId = activityName,
Arguments = new Dictionary<string, IArgument>()
{
{ "inputFile", inputFileArgument },
{ "inputJsonFile", inputFileArgument1 },
{ "outputFile", outputFileArgument },
{ "onComplete", new XrefTreeArgument { Verb = Verb.Post, Url = callbackUrl } }
}
};
***WorkItemStatus workItemStatus = await _designAutomation.CreateWorkItemAsync(workItemSpec);***
return Ok(new { WorkItemId = workItemStatus.Id }); ```发布于 2020-06-11 15:54:25
我在另一篇堆栈溢出文章中看到,Forge不允许超过16 by的上传到oss桶。
16 on限制位于包括工作项在内的设计自动化端点的payload上。这些限制被定义为这里。如果工作项有效负载超过16 If,您将看到一个错误HTTP 413 Payload Too Large。
要将大量的json输入发送到设计自动化,您可以首先将json上传到OSS (甚至是其他存储服务,如Amazon )。然后用签名的url调用json文件的工作项(类似于rfa文件的签名url )。
编辑:
https://stackoverflow.com/questions/62327724
复制相似问题