【发布时间】:2022-11-03 13:14:43
【问题描述】:
我有一个在 Windows 机器上运行的节点 js API,它会生成一些 XML 文件,这些文件稍后会上传到 S3 存储桶。文件数量超过 50k,有时甚至更多。
在我目前的方法中,我使用aws-sdk 包进行上传。基本上我遍历需要上传的文件夹,读取每个文件并上传。
const files = fs.readdirSync(dirPath, {
withFileTypes: true
});
for (const file of files) {
const fileContent = fs.readFileSync(path.join(dirPath, file.name));
const params = {
Bucket: BUCKET_NAME,
Key: `${folderPath}/${file.name}`,
Body: fileContent
};
try {
await s3.upload(params).promise()
} catch (err) {
//error handling
return;
}
}
上传大约需要 3-4 小时。有没有更好的批量上传文件的方法?或者如果有任何方式上传整个文件夹?
提前致谢
【问题讨论】:
标签: javascript node.js asynchronous amazon-s3 npm