带有预签名URL的s3大文件上传

时间:2017-06-09 01:29:31

标签: javascript amazon-web-services file-upload amazon-s3

我需要能够使用来自浏览器(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);
        };
    });
  • 不通过应用程序服务器
  • 不写密钥到前端
  • 使用预先签名的网址(以直接上传...)

0 个答案:

没有答案