【发布时间】:2021-05-19 23:19:00
【问题描述】:
我的 ec2 实例中有一个 py 脚本。这需要一个视频文件作为输入,该文件位于 S3 存储桶中。每次将新文件添加到该存储桶时,如何自动化 ec2 实例开始运行的过程?我希望 ec2 实例识别这个新文件,然后将其添加到 py 脚本可以使用它并处理它并创建输出文件的本地目录。然后我想将此输出文件发送回存储桶并将其存储在那里。 我知道 boto3 库用于将 s3 连接到 ec2 ,但是我不清楚如何自动触发它并查找新文件,而无需手动启动我的实例并复制所有内容
编辑: 我有一个 python 程序,它基本上获取一个视频文件(mp4),然后将其分解为帧并缝合它以创建一堆小的全景图像并将其存储在一个名为“输出”的文件夹中。现在,由于程序需要视频作为输入,在程序中我引用了一个特定的目录,它应该从中选择 mp4 文件并将其作为输入读取。所以我现在想要的是,将有一个 s3 存储桶来接收来自其他地方的视频文件。它将位于特定存储桶内的文件夹中。我希望将进入该存储桶的任何新 mp4 文件复制或发送到我的实例中的输入目录。另外,当发生这种情况时,我希望存储在该实例中的我的 python 程序自动执行,并在输入目录中找到这个新的视频文件来处理它并制作小全景图,然后将其存储在输出目录中,或者更好的是,发送它到同一个 s3 存储桶中的输出文件夹。
【问题讨论】:
-
多久上传一次文件?您的 Amazon EC2 实例是否一直在运行?如果两个文件在几秒钟内上传,你想做什么? EC2 实例上的进程是否需要很长时间?它可以同时处理多个文件吗?您更关心响应时间还是保持低成本? EC2 实例上的代码实际上在做什么,它是否可能通过 AWS Lambda 函数来完成?请编辑您的问题以添加更多详细信息,以便我们推荐合适的架构。
-
@JohnRotenstein 我在编辑中添加了更多信息。请通过它。谢谢。
-
您还没有提供我上述问题的答案,因此提供特定架构并不容易。 Marcin 的回答是一个很好的通用解决方案。
标签: python amazon-web-services amazon-s3 amazon-ec2