0

在我的项目中,用户可以上传视频。因此,当用户上传视频时,视频名称存储在一个表中,其中字段“ is_processed ”默认设置为false

然后上传的视频存储在 S3 中。当视频 a 到达 S3 时,会触发 Lambda 并将视频提供给media convert。将视频转换为HLS格式后,它再次存储在单独的 S3 存储桶中。

现在,当通过 mediaconvert 成功将视频转换为 HLS 时,我希望我的“ is_processed ”字段为真。

那么,我怎样才能从 AWS 与我的 Laravel 后端进行通信,并使该特定视频的“ is_processed ”字段为真。

4

1 回答 1

1

您可以做到这一点的一种方法是通过元数据标签、cloudwatch 和另一个 Lambda 函数的组合。

  1. 在 MediaConvert 中,可以将元数据标签与每个作业一起使用以分配唯一 ID。例如:

键= uuid

值=<视频名称>

该值需要与is_processed=false一起插入到您的数据库表中

有关元数据标签的更多信息,请参阅https://docs.aws.amazon.com/mediaconvert/latest/ug/user-metadata-tags.html

  1. 您已经创建的 lambda 函数启动了 MediaConvert 中的工作。链中的下一步是创建一个 cloudwatch 事件,以在作业完成时触发另一个 Lambda 函数。例如:

Cloudwatch --> 事件 --> 规则 --> 创建规则

服务名称 = MediaConvert

事件类型 = MediaConvert 作业状态更改

具体状态=完成

目标 --> Lambda 函数

有关 cloudwatch 事件的更多信息,请参阅https://docs.aws.amazon.com/mediaconvert/latest/ug/cloudwatch_events.html

  1. 一旦 MediaConvert 作业完成,这将发送一个 CloudWatch 事件,该事件将触发您的 Lambda 函数以显示作业已完成。您可以使用用户元数据中定义的 uuid 密钥对来查找数据库条目,从is_processed=false更新为is_processed=true
于 2021-02-04T21:51:10.290 回答