Transloadit无法在c#.net中获得ASSEMBLY_COMPLETED响应



通过下面的参考链接

https://github.com/nkranitz/transloadit-csharp-sdk我使用transloadit进行视频转换,并将其保存在C#中的s3中。我能够上传视频和图像,并且能够获得空结果的响应。我的响应为"ok":"ASSEMBLY_EXECTING",消息和results标记为空。因此,一旦像assembly_COMPLETED那样执行程序集,我就不会得到最终响应。因此,我看到有一些属性assembly.setblocking=true。。但在C#中,该属性不可用。那么我如何才能得到最终的响应,或者我如何在c#.net 中使用阻塞属性

请帮我解决这个问题。

提前谢谢。

以下是的代码片段

ITransloadit-transloadit=new transloadit.transloadit("APIKEY","Secret");

        //Create assembly builder to build up the assembly
        IAssemblyBuilder assembly = new AssemblyBuilder();
        //Add a file to be uploaded (with autogenerated key)
        assembly.AddFile(@"filepath"); 
       //Define the step, you can define more in the same assembly
        IStep step = new Step();
        step.SetOption("robot", "/image/resize");
        step.SetOption("width", 75);
        step.SetOption("height", 75);
        step.SetOption("resize_strategy", "pad");
        step.SetOption("background", "#000000");
        //Add the step to the assembly
        assembly.AddStep("thumb", step);
        //Set notification URL
        assembly.SetNotifyURL("url");
        //Set the expiration date time of the request for the assembly
        //Assembly will be expired in 120 minutes from now
        assembly.SetAuthExpires(DateTime.Now.AddMinutes(120));
        //Invoke assembly, and wait for the result
        TransloaditResponse response = transloadit.InvokeAssembly(assembly);
        if (response.Success)
        {
          //  LoggerFactory.GetLogger().LogInfo(Type.GetType("TestConsole.Program"), "Assembly {0} result", response.Data);
        }

在第一个响应中,您应该看到一个assembly_url。您可以/应该每隔X秒轮询该URL以获取更新。当程序集达到ASSEMBLY_CANCELED ASSEMBLY_COMPLETED REQUEST_ABORTED或设置了error时,程序集就完成了。我不确定这个轮询的样板是否在SDK中实现,你必须检查一下。

不建议使用阻塞组件,因为它们需要保持连接打开,这更容易损坏。

相关内容

  • 没有找到相关文章

最新更新