我正在一个项目中,我必须上载一个包含子目录的目录,并且每个目录都有多个文件。目录中的文件总数从1万到10万。
我正在NodeJs中使用aws-sdk模块上传文件。
import * as aws from "aws-sdk";
const filesToUpload = await getFiles(path.resolve(__dirname, `${uploadFolder}/${dir_id}`));
return new Promise((resolve, reject) => {
async.eachOfLimit(filesToUpload, 10, async.asyncify(async (file) => {
let Key = file.replace(`${rootFolder}/`, '');
Key = `${getCloudLocation(CLOUD_FOLDER)}/${Key}`;
return new Promise((res, rej) => {
s3.upload({
Key,
Bucket: BUCKET,
ContentEncoding: 'gzip',
Body: fs.readFileSync(file),
ACL: 'public-read'
}, (err) => {
if (err) {
return rej(new Error(err));
}
res({ result: true });
});
});
}), (err) => {
if (err) {
return reject(new Error(err));
}
resolve({ result: true });
});
});
运行代码时,出现以下错误错误:SlowDown:请降低您的请求率。
还有其他方法可以做到而又不会收到错误吗?例如将目录压缩并在上传到s3之后解压缩。