4

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

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

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

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

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

4

1 回答 1

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
}); 
于 2016-06-30T13:34:37.383 回答