批量下载网络图像

时间:2014-12-24 08:09:02

标签: javascript python amazon-s3

我有大约600k图像网址(在列表中),我想实现以下目标:

  • 全部下载
  • 生成特定尺寸的缩略图
  • 将它们上传到亚马逊s3

我估计我的图像平均大约为1mb,这对于下载来说将是大约600gb的数据传输。我不相信我的笔记本电脑和我的互联网连接可以接受它。

我应该走哪条路?我希望最好有一个能够最大限度降低成本的解决方案。

我正在考虑使用Python脚本或JavaScript作业,如果可能的话,以并行方式运行以最小化所需的时间

谢谢!

1 个答案:

答案 0 :(得分:1)

我建议启动一个或多个EC2实例并在那里运行缩略图作业。您将消除几乎所有的带宽成本(从正确的区域中的ec2实例免除s3),并且AWS网络内的传输速度肯定会更快。

对于要处理的600K文件,您可能需要考虑将每个“作业”加载到SQS队列中,然后让多个EC2实例轮询队列以“工作” - 这将允许您旋转许多ec2实例,因为你想并行运行并分发工作。

然而,设置队列的工作可能是也可能不值得,这取决于你需要多久做一次,以及它需要多快完成 - 即如果这是一次性的事情,你可以等待一个它完成的一周,单个实例插入可能就足够了。