我遇到了麻烦,我在浏览器上使用aws-sdk将视频从我的Web应用程序上传到Amazon S3,它适用于最短文件(小于100MB)但适用于大文件(例如500MB),亚马逊重试上传。
例如,当上传量为28%时,它会返回1%,我不知道为什么,我将上传文件的事件监听器放了进去,但是它没有给出任何错误,只是返回了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错误...)
我的互联网连接很好,我正在使用我的业务连接,并且工作正常,我的所有计算机都发生了此问题
对于大型对象,您可以尝试upload
支持进度跟踪和分段上传的功能以并行上传部分。我也没有在您的示例中看到设置内容长度,uplaod
而是实际上接受了一个不必定义内容长度的流。
例如:https://aws.amazon.com/blogs/developer/announcing-the-amazon-s3-managed-uploader-in-the-aws-sdk-for-javascript/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句