function uploadFile(data) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', updateProgress);
xhr.upload.addEventListener('load', transferComplete);
xhr.upload.addEventListener('error', transferFailed);
xhr.open('PUT', presignedURL);
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send(data);
function updateProgress(event) {
if (event.lengthComputable) {
var percentComplete = event.loaded / event.total;
console.log('percentComplete', percentComplete);
} else {
console.log('Unable to compute progress information since the total size is unknown');
}
}
function transferComplete(evt) {
console.log('The transfer is complete.');
resolve('complete');
}
function transferFailed(evt) {
console.log('An error occurred while transferring the file.');
reject('An error occurred while transferring the file.', evt);
}
});
}