将附加值传递给 lambda 消费的 s3 事件通知
passing additional values to s3 event notification for lambda consumption
我必须用 react-native 编写代码,允许用户将视频上传到 amazon s3 以进行转码以供各种设备使用。对于上传发生后的处理;我正在审查两种方法:
1) 我可以使用带有 ffmpeg 的 Lambda 在上传发生后立即处理转码(我担心的是转码视频所需的时间以及如果花费大量时间对定价的影响).
2) 我可以让 s3 在创建的事件发生后将 sns 消息传递给 rest api,rest api 生成将由 worker 处理的 rabbitmq 消息,该消息将执行使用 ffmpeg 转码。
从完成时间的角度来看,选项 1) 似乎是更可取的选项。我应该如何关注使用 1) 考虑视频转码可能需要多长时间而不是选项 2)?
另外,无论如何,我需要一种方法来将附加参数传递给 lambda 或沿着 sns 消息传递,这将使我能够以某种方式将上传视频的用户与其帐户相关联。有没有一种方法可以将其他基于文本的值传递给 s3,以便在上传完成时传递给 lambda 或沿着 sns,作为警告,我计划使用其余层将视频直接上传到 s3(在这里找到这个答案:http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-responses-examples)?
AWS provides a video transcoding service 正是这种类型的东西。如果您出于某种原因不想这样做,那么您需要确保可以在 5 分钟内完成 AWS Lambda 中的转码任务。不确定使用 RabbitMQ 和 workers 的第二个选项来自哪里。为什么使用 RabbitMQ 而不是 SQS? worker 会是 EC2 服务器上的进程而不是 Lambda 函数吗?
关于您的其他问题,您需要将这些额外参数作为元数据字段传递到 S3 对象上。在您链接的文档中,查看 x-amz-meta-
的工作原理。然后当您稍后从 S3 检索对象以对其进行转码时,您可以同时检索元数据字段。
我必须用 react-native 编写代码,允许用户将视频上传到 amazon s3 以进行转码以供各种设备使用。对于上传发生后的处理;我正在审查两种方法:
1) 我可以使用带有 ffmpeg 的 Lambda 在上传发生后立即处理转码(我担心的是转码视频所需的时间以及如果花费大量时间对定价的影响).
2) 我可以让 s3 在创建的事件发生后将 sns 消息传递给 rest api,rest api 生成将由 worker 处理的 rabbitmq 消息,该消息将执行使用 ffmpeg 转码。
从完成时间的角度来看,选项 1) 似乎是更可取的选项。我应该如何关注使用 1) 考虑视频转码可能需要多长时间而不是选项 2)?
另外,无论如何,我需要一种方法来将附加参数传递给 lambda 或沿着 sns 消息传递,这将使我能够以某种方式将上传视频的用户与其帐户相关联。有没有一种方法可以将其他基于文本的值传递给 s3,以便在上传完成时传递给 lambda 或沿着 sns,作为警告,我计划使用其余层将视频直接上传到 s3(在这里找到这个答案:http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-responses-examples)?
AWS provides a video transcoding service 正是这种类型的东西。如果您出于某种原因不想这样做,那么您需要确保可以在 5 分钟内完成 AWS Lambda 中的转码任务。不确定使用 RabbitMQ 和 workers 的第二个选项来自哪里。为什么使用 RabbitMQ 而不是 SQS? worker 会是 EC2 服务器上的进程而不是 Lambda 函数吗?
关于您的其他问题,您需要将这些额外参数作为元数据字段传递到 S3 对象上。在您链接的文档中,查看 x-amz-meta-
的工作原理。然后当您稍后从 S3 检索对象以对其进行转码时,您可以同时检索元数据字段。