通过node js从本地同时上传多个文件到s3桶

Uploading multiple files at same time from local to s3 bucket through node js

本文关键字:文件 s3 js node 通过      更新时间:2023-09-26

我正在尝试将文件上传到s3桶,我使用以下代码来完成此操作。

var params = {
  localFile: "../Processor/1.wav",
  s3Params: {
    Bucket: "bucketname",
    Key: "1.wav",
  },
};
var uploader = client.uploadFile(params);
uploader.on('error', function(err) {
  console.error("unable to upload:", err.stack);
});
uploader.on('progress', function() {
  console.log("progress", uploader.progressMd5Amount,
            uploader.progressAmount, uploader.progressTotal);
});
uploader.on('end', function() {
  console.log("done uploading");
});

在此之前一切都很好。现在让我们说这里,我想上传5个文件从本地路径到s3桶,我怎么能做到这一点有没有任何直接的方法为多个文件上传提供亚马逊或我需要使用异步模块?

NodeJS AWS SDK没有任何批量S3上传方法,我建议您使用async/await一次上传多个文件。下面是一个例子:

const s3 = new AWS.S3()
const params = [
  { Bucket: 'bucket', Key: 'key', Body: 'body' },
  { Bucket: 'bucket', Key: 'key2', Body: 'body2' },
  { Bucket: 'bucket', Key: 'key3', Body: 'body3' }
]
const responses = await Promise.all(
  params.map(param => s3.upload(param).promise())
)
console.log(responses)