我有大约 600k 图像 URL(在列表中),我想实现以下目标:
- 全部下载
- 生成特定尺寸的缩略图
- 将它们上传到 Amazon s3
我估计我的图像平均约为 1mb,下载数据传输量约为 600GB。我不相信我的笔记本电脑和我的互联网连接可以承受它。
我该走哪条路?我希望有一个能够最大限度地降低成本的解决方案。
我正在考虑一个 Python 脚本或 JavaScript 作业,如果可能的话并行运行,以尽量减少所需的时间
谢谢!
最佳答案
我建议启动一个或多个 EC2 实例并在那里运行您的缩略图作业。您将消除几乎所有的带宽成本(从正确区域的 ec2 实例到 s3 的免费),并且 AWS 网络内的传输速度当然会更快。
对于要处理的 600K 文件,您可能需要考虑将每个“作业”加载到 SQS 队列中,然后让多个 EC2 实例轮询队列中的“待处理工作” - 这将允许您启动为许多 ec2 实例,因为您希望并行运行并分配工作。
但是,设置队列的工作可能值得也可能不值得,具体取决于您需要执行此操作的频率以及需要完成的速度 - 即,如果这是一次性的事情,并且您可以等待一周才能完成,一个实例可能就足够了。
关于javascript - 批量下载网页图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27633641/