amazon-web-services - 亚马逊重试上传大文件
问题描述
我遇到了麻烦,我在浏览器上使用 aws-sdk 将视频从我的网络应用程序上传到 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
接受了一个没有定义内容长度的流。
推荐阅读
- android - 启用后等待多长时间开始 BLE 扫描?
- sed - AIX:sed 命令删除除第一行之外的所有行的模式
- python - 在 Python 中显示虹膜数据集时出错
- scala - 在没有 RDD 的数据帧列值提取中定义隐式/显式编码的最佳实践
- java - 无法将带有连字符的 JSON 字段映射到 Java 对象字段
- c++ - C++20。is_constant_evaluate() 与 if constexpr
- sql - sql获取两个日期之间的所有月份和年份,并根据两个日期之间的月份频率计算总数
- python - 如何在 python 中使用 Selenium 包单击多个复选框和下拉菜单?
- php - Monologger\Logger 类中的未定义函数(addCritical 函数)
- python - tf sumpooling layer 1d vs 2d