Я работаю над проектом, в котором мне нужно загрузить каталог, в котором есть подкаталоги, и в каждом каталоге есть несколько файлов. Общее количество файлов в каталоге варьируется от 10k до 100k.
Я использую модуль aws-sdk в NodeJs для загрузки файлов.
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.