亚马逊重试上传大文件

Amazon retries upload with large files

我遇到了问题,我在浏览器上使用 aws-sdk 将视频从我的网络应用程序上传到 Amazon S3,它适用于最短的文件(小于 100MB)但适用于大文件(例如 500MB) ) 亚马逊重试上传。

例如,当上传在 28% 时,它 return 回到 1%,我不知道为什么,我放了一个上传文件的事件监听器,但它没有给出任何错误, 刚刚 return 回到 1%

从字面上看,这是我的代码:

        const params = { 
            Bucket: process.env.VUE_APP_AWS_BUCKET_NAME, // It comes from my dotenv file
            Key: videoPath, // It comes from a external var
            ACL: 'public-read',
            ContentType: this.type, // It comes from my class where i have the video type
            Body: VideoObject // <- It comes from the input file
        };

            s3.putObject(params, function (err) {
                if (err)
                    console.log(err);
            }).on('httpUploadProgress', progress => {

                console.log(progress);
                console.log(progress.loaded + " - " + progress.total);
                this.progress = parseInt((progress.loaded * 100) / progress.total);

            });

我真的很想提供更多信息,但我只有这些,我不知道为什么 s3 重试上传没有任何错误(我也不知道如何捕获 s3 错误...)

我的互联网连接很好,我正在使用我的业务连接并且工作正常,我所有的电脑都会出现这个问题

您需要使用 multipart 上传大文件。

对于大型对象,您可以尝试upload 支持进度跟踪和分段上传的功能来并行上传分段。此外,我没有看到您的示例中设置的内容长度,实际上 uplaod 接受没有定义内容长度的流。

一个例子:https://aws.amazon.com/blogs/developer/announcing-the-amazon-s3-managed-uploader-in-the-aws-sdk-for-javascript/