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分段上傳