s3分段上传限制
|
规范
|
---|---|
最大对象大小 | 5 TB |
每次上传的分段的最大数量 | 10000 |
分段编号 | 1 到 10000 (含) |
分段大小 | 5 MB 到 5 GB,上一个分段可以 <5 MB |
列出分段请求返回的分段的最大数量 | 1000 |
在列出分段上传请求中返回的分段的最大数量 | 1000 |
初始化分段上传
1、用户选择文件进行上传
2、js判断文件是否适合分段上传
(1)如果适合,发送请求获取初始化预签名url,发送请求post请求到初始化url获取uploadId,初始化分段上传
可以自定义文件元数据,添加请求头,key以x-amz-meta-开头;通过设置x-amz-acl设置权限,可以设置的值为private | public-read | public-read-write,默认为private
(2)否则,直接请求预签名url进行文件上传,并上传完成后进行md5校验(方法同分段上传)
上传所有分段
根据文件大小、分段大小计算分段数,向后台请求获取所有分段上传的预签名url,js计算分段对象的MD5值,发送put请求进行文件上传,上传完成后取etag值进行MD5校验,如果校验不通过,重新上传。(为保证js可以取到响应头中的etag值,需要设置cors)
完成分段上传
获取完成分段预签名url,所有分段上传完成后,发送post请求完成分段上传,分段上传必须手动发送请求完成或终止,完成上传文件所有分段需包含在请求中。
终止分段上传
获取终止分段预签名url,发送delete请求终止分段上传。
查询已经上传完毕的分段
获取已经上传完毕的预签名url,发送get请求获取已经上传完成的分段列表,可以此列表进行上传进度设置
注:所有获取预签名url的步骤可以在初始化阶段由后端生成返回完成。
参考网页:S3分段上传