我需要能够使用来自浏览器(Chrome,IE,FireFox)的presignedUrl将大文件(大约1~2G)上传到S3(AWS)。不通过应用服务器发送,直接上传到S3。
我正在使用下面的代码。但是当我将大文件(1G)上传到S3时,浏览器崩溃了。 (内存不足...) 大约600MB文件成功。
document.getElementById('file-input').addEventListener('change', function (evt) {
var s3PresignedUrl = 'GET_S3_PRESIGNED_URL';
var url = decodeURIComponent(s3PresignedUrl);
var fr = new FileReader();
fr.readAsArrayBuffer(evt.target.files[0]);
fr.onloadend = function () {
var xhr = new XMLHttpRequest();
xhr.open("PUT", url);
xhr.send(fr.result);
};
});