使用URL将2,000万张图片上传到s3存储桶

时间:2020-03-26 09:22:16

标签: node.js rest amazon-s3 cloudinary knox-amazon-s3-client

我想将2000万张图片上传到S3存储桶。我正在使用以下代码。

s3.putObject(objectParams, (err, data) => {
            if (err) {
              reject(err);
            } else {
              resolve(data);
            }

我有要使用的云图像URL,并且要将这些图像上传到S3。

最快的方法是什么?我目前正在按顺序运行此代码,但要花很多时间。我可以使用rest api更快地运行它吗?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我个人将执行以下操作:

  • 编写一个接受URL的 AWS Lambda函数,然后为每个URL:
    • 下载文件(最大临时存储= 512MB)
    • 将文件上传到S3
    • 删除本地(临时)文件
  • 创建一个 Amazon SQS队列,并将其配置为在收到消息时(一次最多传递10条消息)触发Lambda函数
  • 编写一个小脚本以将URL放入SQS队列

这将并行启动许多Lambda函数(默认限制是1000个并发函数),所有这些都将为您复制文件。

唯一的问题是文件是否超过512MB,这是Lambda提供的临时存储的大小。