如何获得有关 aws 转码器作业状态的通知

Posted

技术标签:

【中文标题】如何获得有关 aws 转码器作业状态的通知【英文标题】:How to get notified of aws transcoder job status 【发布时间】:2014-09-04 08:47:42 【问题描述】:

我正在使用 node.js 做一个 CMS 站点,为了处理用户发布的视频,我决定使用亚马逊的 Elastic Transcoder 服务。 我已经想出了如何创建作业并使用 aws-sdk for node.js 对视频进行转码,但一个问题仍然困扰着我。

我的网站也处理用户发布的图片,收到他们的帖子后,我会显示图片预览,等待用户确认。 我可以这样做,因为在图片实际在服务器(aws s3)上运行后,我得到了通知(在回调中),然后用它的位置响应用户。

就像处理图片一样,我想显示用户发布的视频的预览,但这种情况似乎不同,转码耗时且发生在云端 我不知道如何在工作状态更改时收到通知。 (进度、完成、错误等。我想向用户显示这些信息)

根据aws docs和manual,job会通过aws SNS发送通知,这是否意味着我必须在创建job后手动订阅SNS?我认为这太复杂了。

有没有更好的解决方案?谢谢。

【问题讨论】:

能否提供弹性转码器的nod​​e js SDK链接? 【参考方案1】:

你应该看看waitFor方法,你需要传递job id,你可以像这样设置事件回调

var params = 
  Id: 'STRING_VALUE' /* required */
;
elastictranscoder.waitFor('jobComplete', params, function(err, data) 
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
); 

【讨论】:

以上是关于如何获得有关 aws 转码器作业状态的通知的主要内容,如果未能解决你的问题,请参考以下文章

第十六周学习作业

如果任何作业在 python 中失败,如何退出进程?

为啥 AWS Batch 作业卡在 RUNNABLE 中?

Gitlab CI 作业在每次部署后运行以报告状态

AWS 批处理始终为每个作业启动新的 ec2 实例

Step Function 中的 AWS Batch 作业执行结果