【问题标题】:What is the difference between Multipart Upload and Chunked Upload on AWS?AWS 上的分段上传和分块上传有什么区别?
【发布时间】:2019-01-16 15:25:11
【问题描述】:

我的文件分块上传目标如下:

  • 顺序分块上传
  • 上传区块时的进度更新
  • 当块上传失败时重试
  • 块大小为 1MB
  • 我的环境最好在 Javascript 上,但也可以在 ASP.Net 上。

我使用的是 AWS S3,并且已经配置了 CloudFront。

我目前不确定使用哪个:Multipart Upload APIChunked Upload。那么它们有什么区别,什么时候用呢?

【问题讨论】:

  • 文件有多大?
  • @Michael-sqlbot 它可以是任意大小。分块上传主要用于视频文件。如果文件的大小小于 1MB,那么它会照常上传。

标签: javascript asp.net amazon-web-services amazon-s3 amazon-cloudfront


【解决方案1】:

以下是我目前看到的一些差异:

分段上传:

分块上传:

【讨论】:

  • Multipart 和 chunked 都适用于 sig V2 和 V4。分块的最大总对象大小限制为 5G。多部分允许并行。
  • 我已经让 Multipart Upload 与 v2 签名一起工作。那么我需要做什么才能更改为分块上传(最好使用 v2 签名)?
  • 我从未遇到过证明复杂性分块上传合理的用例。它们不是Transfer-Encoding: chunked 标准意义上的“分块”,并且与多部分完全不同。
  • 我们需要每交付 1MB 显示上传进度的用例怎么样,而 Multipart 只允许最小 5MB。另外,当您说这两个完全不同时,您是在谈论我作为 Web 开发人员不需要知道的底层协议技术吗?你能启发我吗?
  • @Michael-sqlbot 你说 multipart 与 sig V4 一起工作......如果是这样,如何避免在 5MB 到 5GB(!)的潜在巨大单个上传部分上计算 SHA256 哈希。文档太混乱了…… UploadPart 文档建议使用 Content-MD5(成本更低),但没有说明如何使用 sig AWS V4 来做到这一点。块上传文档指定将 X-Amz-Content-Sha256 标头设置为 STREAMING-AWS4-HMAC-SHA256-PAYLOAD 或散列空格,但哪些标头需要成为 UploadPart PUT 请求签名的一部分?我很高兴 OP 提出这个问题。非常混乱的文档。
猜你喜欢
  • 2017-08-27
  • 2016-04-03
  • 2012-05-07
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-06
  • 2021-05-21
相关资源
最近更新 更多