in source/lambda/splitArchive/index.js [64:118]
async function processAndSendChunkMessage(glacierRetrievalStatus, key, numberOfChunks) {
let queueUrl = await sqs.getQueueUrl({ QueueName: SQS_CHUNK }).promise();
if (numberOfChunks > 1){
console.log(`${key} : multiPart : ${numberOfChunks}`);
let multiPartUpload = await s3
.createMultipartUpload({
Bucket: STAGING_BUCKET,
Key: `${STAGING_BUCKET_PREFIX}/${key}`,
})
.promise();
let i = 1;
while (i < numberOfChunks) {
// console.log("Submitting chunk: " + i);
let startByte = (i - 1) * CHUNK_SIZE;
let endByte = startByte + CHUNK_SIZE - 1;
await sendChunkMessage(
queueUrl.QueueUrl,
glacierRetrievalStatus,
multiPartUpload.UploadId,
key,
i,
startByte,
endByte
);
i++;
}
// console.log("Processing last chunk: " + i);
let startByte = (i - 1) * CHUNK_SIZE;
let endByte = glacierRetrievalStatus.ArchiveSizeInBytes - 1;
await sendChunkMessage(
queueUrl.QueueUrl,
glacierRetrievalStatus,
multiPartUpload.UploadId,
key,
i,
startByte,
endByte
);
} else {
await sendChunkMessage(
queueUrl.QueueUrl,
glacierRetrievalStatus,
null,
key,
null,
null,
null)
}
}