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

时间:2014-09-04 08:47:43

标签: node.js amazon-web-services amazon-elastic-transcoder

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

我的网站还处理用户发布的图片,收到帖子后,我会显示图片的预览,并等待用户查询。 我可以做到这一点,因为我在服务器(aws s3)上实际输出图片后得到通知(在回调中),然后响应用户的位置。

就像处理图片一样,我希望显示用户发布的视频的预览,但这种情况看起来不同,转码很耗时并且发生在云端 我不知道如何在工作状态发生变化时收到通知。 (进度,完成,错误等我希望将这些信息显示给用户)

根据aws文档和手册,作业将通过aws SNS发送通知,这是否意味着我必须在创建作业后手动订阅SNS?我觉得这太复杂了。

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

1 个答案:

答案 0 :(得分:3)

您应该查看waitFor方法,您需要传递作业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
});