小文件是可以正常上传的,但是400MB以上就会有有这问题,时间久了会time out.
如下为我的demo:
AWS.config.update({
accessKeyId : 'accessKeyId',
secretAccessKey : 'secretAccessKey',
region: bucketRegion,
});
var fileChooser = document.getElementById('video_thumb');
var file = fileChooser.files[0];
var s3obj = new AWS.S3({params: {Bucket: bucketName}});
var params = {Key: file.name, Body: file,ContentType: file.type};
var options = {partSize: 2048 * 1024 * 1024, queueSize: 2,leavePartsOnError: true};
s3obj.upload(params,options).
on('httpUploadProgress', function(evt) {
console.log("Uploaded : " + parseInt((evt.loaded * 100) / evt.total)+'%');
}).send(function(err, data) {
if (err) {
console.log("ERROR UPLOADING" + file.name);
console.log(err);
} else {
var url = s3obj.getSignedUrl('getObject', {Key: params.Key});
console.log(url)
}
});
14 个解决方案
#1
沙发,坐等!!!
#2
没人啊
#3
你就没看了下服务端是什么情况?
#4
关键看不出什么东西啊,这是我s3的cors及策略配置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
{
"Version": "2012-10-17",
"Id": "Policy151136430932324",
"Statement": [
{
"Sid": "Stmt1511364123305021",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::043550225340:user/my-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
}
]
}
#5
在这方面我也是菜鸟一枚,请多多指导啊
#6
没人了吗
#7
你这是js吧?后端是nodejs服务吗?
#8
java,我没有走后端,直接连接的s3
#9
看看是不是限制了大小呢
#10
partSize: 2048 * 1024 * 1024 我设置的参数为两个G,文件就400多MB,应该不是这个原因吧
#11
这次上传成功但是中间中断了大概三四次,然后它自己又会重新上传,好鸡吧蛋疼!!!
#12
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
#13
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
应该不是,我用java的SDK做过实验,是可以上传的。只不过快慢的问题,但是不会出现这种中断又重新上传的问题
#14
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
应该不是,我用java的SDK做过实验,是可以上传的。只不过快慢的问题,但是不会出现这种中断又重新上传的问题
无能为力
#1
沙发,坐等!!!
#2
没人啊
#3
你就没看了下服务端是什么情况?
#4
你就没看了下服务端是什么情况?
关键看不出什么东西啊,这是我s3的cors及策略配置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<ExposeHeader>ETag</ExposeHeader>
<ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
{
"Version": "2012-10-17",
"Id": "Policy151136430932324",
"Statement": [
{
"Sid": "Stmt1511364123305021",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::043550225340:user/my-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
}
]
}
#5
你就没看了下服务端是什么情况?
在这方面我也是菜鸟一枚,请多多指导啊
#6
没人了吗
#7
你这是js吧?后端是nodejs服务吗?
#8
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
#9
看看是不是限制了大小呢
#10
看看是不是限制了大小呢
partSize: 2048 * 1024 * 1024 我设置的参数为两个G,文件就400多MB,应该不是这个原因吧
#11
看看是不是限制了大小呢
这次上传成功但是中间中断了大概三四次,然后它自己又会重新上传,好鸡吧蛋疼!!!
#12
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
#13
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
应该不是,我用java的SDK做过实验,是可以上传的。只不过快慢的问题,但是不会出现这种中断又重新上传的问题
#14
你这是js吧?后端是nodejs服务吗?
java,我没有走后端,直接连接的s3
确实没用过,aws 不是网络速度很慢吗?会不会和网速有关系
应该不是,我用java的SDK做过实验,是可以上传的。只不过快慢的问题,但是不会出现这种中断又重新上传的问题
无能为力