in source/aws-connect-vm-serverless/src/handler/solution-helper.js [210:287]
let uploadFile = function(filelist, index, destS3Bucket, sourceS3Bucket, sourceS3prefix, baseApi, gwKey, cognitoDomain, clientId, userPoolId, redirDomain, cb) {
if (filelist.length > index) {
if (filelist[index].startsWith('static') && (filelist[index].endsWith('js') || filelist[index].endsWith('map'))) {
let getObjectParams = {
Bucket: sourceS3Bucket,
Key: sourceS3prefix + filelist[index]
};
s3.getObject(getObjectParams, function (err, result) {
let data = result.Body.toString('utf-8');
data = data.replace(/__BASE_API__/g, baseApi).replace(/__API_KEY__/g, gwKey['value']).replace(/__C_DOMAIN__/g, cognitoDomain).replace(/__C_POOL__/g, userPoolId).replace(/__C_CLIENT_ID__/g, clientId).replace(/__C_REDIR__/g, redirDomain);
let putObjectParams = {
Body: data,
Bucket: destS3Bucket,
Key: filelist[index],
ContentType: 'application/javascript'
};
s3.putObject(putObjectParams, function (err, result) {
if (err) {
console.log("Error putting: " + err);
}
});
let _next = index + 1;
uploadFile(filelist, _next, destS3Bucket, sourceS3Bucket, sourceS3prefix, baseApi, gwKey, cognitoDomain, clientId, userPoolId, redirDomain,
function (err, resp) {
if (err) {
return cb(err, null);
}
cb(null, resp);
});
});
} else {
let params = {
Bucket: destS3Bucket,
Key: filelist[index],
CopySource: sourceS3Bucket + "/" + sourceS3prefix + filelist[index],
MetadataDirective: "REPLACE"
};
if (filelist[index].endsWith('.htm') || filelist[index].endsWith('.html')) {
params.ContentType = "text/html";
} else if (filelist[index].endsWith('.css')) {
params.ContentType = "text/css";
} else if (filelist[index].endsWith('.js')) {
params.ContentType = "application/javascript";
} else if (filelist[index].endsWith('.png')) {
params.ContentType = "image/png";
}
s3.copyObject(params, function(err, data) {
if (err) {
console.log(['error copying ', [sourceS3prefix, filelist[index]].join(''), '\n', err]
.join(''));
} else {
console.log([
[sourceS3prefix, filelist[index]].join('/'), 'uploaded successfully'
].join(' '));
let _next = index + 1;
uploadFile(filelist, _next, destS3Bucket, sourceS3Bucket, sourceS3prefix, baseApi, gwKey, cognitoDomain, clientId, userPoolId, redirDomain,
function (err, resp) {
if (err) {
return cb(err, null);
}
cb(null, resp);
});
}
});
}
} else {
cb(null, [index, 'files copied'].join(' '));
}
};