Мне нужно написать лямбда-функцию и отправить число в поле запроса api, чтобы сгенерировать количество QR-кодов и сохранить их в корзине S3. Я использую серверную среду с шаблоном aws - nodejs , Чтобы кратко описать задачу, скажем, что я получаю число, введенное в запросе API PathParameters, и на основе этого числа мне нужно сгенерировать это количество QR-кодов, используя пакет qr npm, а затем сохранить эти сгенерированные qr в контейнере s3
это то, что я смог сделать до сих пор.
module.exports.CreateQR = (event,context) =>{
const numberOfQR = JSON.parse(event.pathParameters.number) ;
for(let i=0;i<numberOfQR;i++){
var d= new Date();
async function createQr(){
let unique, cipher, raw, qrbase64;
unique = randomize('0', 16);
cipher = key.encrypt(unique);
raw = { 'version': '1.0', data: cipher, type: 'EC_LOAD'}
// linkArray.forEach( async (element,index) =>{
let qrcode = await qr.toDataURL(JSON.stringify(raw));
console.log(qrcode);
// fs.writeFileSync('./qr.html', `<img src="${qrcode}">`)
const params = {
Bucket:BUCKET_NAME,
Key:`QR/${d}/img${i+1}.jpg`,
Body: qrcode
};
s3.upload(params , function(err,data){
if(err){
throw err
}
console.log(`File uploaded Successfully .${data.Location}`);
});
}
createQr();
}
};
Мне удалось загрузить определенное количество изображений в корзину, но проблема, с которой я сталкиваюсь, заключается в том, что изображения не собираются в порядке. Я думаю, что проблема с асинхронным кодом. Любая идея, как решить эту проблему