如何使用nodejs中的AWS lambda将文件从公共网络复制到AWS S3



我想从公共网络复制文件,例如:http://myvideo.com/porn/tca-333.mp4进入我的S3桶:假设:s3://mypublicstorage.example.com/porn/tca-333.mp4使用AWS lambda。

问题是,视频的大小可能很大,例如2〜10 GB。如果我要使用诸如Superagent的请求库获取它,那么所有这些都可能存储在RAM中,因此这还不够。

aws lambda本身只有500个MB磁盘IIRC的限制。毕竟,AWS Lambda是否不可能执行此任务?

我当前的代码或多或少是:

request.get(srcUrl).then(resp => S3.putObject({Body: resp.body, ...}))

任何建议?

对于这种作业,不可能仅使用lambda。您可以按以下方式设置架构。

  • aws lambda功能将作业推到亚马逊SQS中的队列。
  • 设置一个EC2实例以执行以从队列中提取作业并下载文件并将其上传到S3。(可选地停止EC2完成工作后)
  • 对于低频繁的工作负载,您可以选择地从lambda和程序开始处理工作后的EC2实例,并在处理作业后自我关闭并找到队列为空。

最新更新