我想从公共网络复制文件,例如: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实例,并在处理作业后自我关闭并找到队列为空。