返回介绍

1.18 分片上传

发布于 2020-10-01 16:22:05 字数 9677 浏览 993 评论 0 收藏 0

分片上传

分片上传提供一个将Object拆分成若干个Part进行上传的功能。每个Part是Object数据中连续的一部分。所有Part可以独立且以任何顺序进行上传。任何Part上传失败后,可以单独进行重传,且不影响已经成功上传的Part。所有分片都上传后,FDS对这些Part进行组装,然后用户可以像普通Object一样进行访问。通常,如果Object大于100MB,可以考虑使用分片上传。

分片上传的优点:

  1. 高throughput — Part可以并行地上传。
  2. 断点续传 — 当网络出现问题后,仅仅需要重传失败的Part。
  3. 上传不提前知道大小的Object — Object可以边创建边上传。比如,用户通过一个stream接受数据,然后上传到FDS的场景。

分片上传流程

分片上传是一个三阶段的过程:首先初始化分片上传,然后上传所有分片,最后完成分片上传。当FDS收到完成分片上传请求时,会根据请求中提供的Part列表对Part进行组装。

1.初始化分片上传

初始化分片上传后,FDS会返回一个唯一的upload id来标示本次分片上传。后续的上传分片、结束或终止分片上传都需要带上这个upload id。

2.上传分片

上传分片时,除了指定upload id外,还需要指定part number。Part number的取值范围为1至MAX_NUMBERS,它用于确定该Part在整个Object中的位置。如果用已使用过的part number上传一个新Part,旧的会被覆盖。每个上传Part请求FDS都会返回一个ETag,用户需要记录下这些part number和Etag对。结束分片上传时需要将所有分片的part number和ETag发给FDS。

3.完成分片上传(或者终止)

当所有分片上传完成后,需要进行完成操作。FDS会将所有分片按part number的增序组装成一个Object(part number需要连续且不能有重复项)。Object总大小较大时,这个操作可能会花费几秒钟。同一个Object的不同分片上传(通过upload id来区分),不管哪个先初始化,后complete的会覆盖先complete的。

如果不再需要已上传的分片,需要终止本次分片上传,以免被收取额外的费用。

Mode

分片上传有两种模式:DIRECT和MULTI_BLOB,目前暂不支持用户选择上传模式。

Mode是否能获取MD5是否支持乱序上传(并发上传)
DIRECTYESNO
MULTI_BLOBNOYES

Limitions

RegionMax object sizePart numbersPart sizeMode
cnbj02G1 至 400(包含400)5M 至 50M(包含5M和5M),最后一个Part可以小于5MDIRECT
cnbj2100G1 至 20480(包含20480)5M 至 50M(包含5M和50M),最后一个Part可以小于5MDIRECT
awsbj0100G1 至 20480(包含20480)5M 至 50M(包含5M和50M),最后一个Part可以小于5MDIRECT
awsusor0100G1 至 20480(包含20480)5M 至 50M(包含5M和50M),最后一个Part可以小于5MDIRECT
awssgp0100G1 至 20480(包含20480)5M 至 50M(包含5M和50M),最后一个Part可以小于5MDIRECT
awsde0100G1 至 20480(包含20480)5M 至 50M(包含5M和50M),最后一个Part可以小于5MDIRECT

计费

分片上传除了收取请求个数费用以外,Part所占用的存储空间也会收费。分片上传complete后,组装成的Object收费标准和普通Object一样。Abort后,Part不再收取存储空间费。所以,如果所上传的Part不再需要,请终止该分片上传,以免被收取费用。

Complete效率

Complete阶段需要组装所有Part至一个Object,两种上传模式下的Complete效率相近。总大小为100G时,大概需要花费5秒。

API和SDK

和其它请求一样,FDS提供了Restful API和SDK,具体请参考Object操作 REST API和Object操作API的签名和示例中分片上传相关的章节。

分片上传请求也可以通过presigned url发起,具体请参考Presigned URL

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文