Пытаясь загрузить 40k файлов в s3 из nodejs и aws -sdk, я обещаю, что каждый код работает нормально до 5800 записей, но после этого происходит сбой, остальные файлы не загружаются, может кто-нибудь помочь, почему это происходит, или Я должен использовать какой-то другой подход для этого или мне нужно обновление в моем коде?
Вот мой код
public static convertClobAndUploadToS3(allClobAttachments: Array<RfAttachment>):
Promise<FileConvertS3UploadResponse> {
return new Promise(async (resolve, reject) => {
const fileConvertResp: FileConvertS3UploadResponse = { processed: [], unprocessed: [] };
for (let i = 0; i < allClobAttachments.length; i++) {
const rfAttachment = allClobAttachments[i];
const mainFileBufferFormat: Buffer = Buffer.from(rfAttachment.CLOB);
const path = CONST.S3.PATH.MAIN_FILE;
const fileName = rfAttachment.RF_ID + CONST.S3.EXT.MAIN_FILE;
// upload only single file to s3 at a time and returns url
const url = await GFIUtils.uploadFileToS3(config, fileName, mainFileBufferFormat, path);
url ? fileConvertResp.processed.push({ RFID: rfAttachment.RF_ID, url, rfAttachment })
: fileConvertResp.unprocessed.push(rfAttachment.RF_ID);
if (fileConvertResp.processed.length === allClobAttachments.length) {
logger.info(`CLOB STAGE::: All clob successfully uploaded!!! TOTAL CLOB:::${allClobAttachments.length}`);
return resolve(fileConvertResp);
} else if (fileConvertResp.unprocessed.length + fileConvertResp.processed.length
=== allClobAttachments.length) {
logger.info(`allClobAttachments::: ${allClobAttachments.length}`);
logger.info(`processed::: ${fileConvertResp.processed.length}`);
logger.info(`unprocessed::: ${fileConvertResp.unprocessed.length}`);
return reject(fileConvertResp);
} else { continue; }
}
});
}