You need to enable JavaScript to run this app. 是否可以通过单次请求列举分片上传对象的所有分片信息?
优惠活动
大模型
产品
解决方案
定价
更多

是否可以通过单次请求列举分片上传对象的所有分片信息?

结论

可以,完全不需要发起2000次HEAD请求,根据你的分片对象所处状态,最多只需要1~2次请求就能拿到所有分片的大小信息。

分片上传任务未完成(未调用CompleteMultipartUpload接口)

直接调用ListParts接口即可,接口返回结果会直接包含所有已上传分片的编号、大小、ETag等完整信息:

  • 单次ListParts请求最多返回1000个分片的信息,2000个分片只需要搭配分页标记参数发起2次请求就能拉取全量数据
  • 不需要额外解析响应头,返回结果中直接给出每个分片的精确大小

分片上传已完成,对象已正常存储

绝大多数S3兼容的对象存储服务都支持GetObjectAttributes接口,你只需要在请求参数中指定需要返回Parts属性,即可一次性拉取该对象所有分片的元数据:

  • 和ListParts逻辑一致,单次请求最多返回1000个分片,2000个分片最多2次请求即可完成拉取
  • 响应结果中每个分片条目都自带大小字段,不需要单独发起HEAD请求逐个查询

补充说明:你当前使用的逐分片发起HEAD请求的方案虽然逻辑可行,但请求成本过高,还容易触发存储服务的请求频率限制,使用上述官方接口的效率要高很多。部分非常老旧的对象存储服务如果不支持GetObjectAttributes接口,可先通过HeadObject接口返回的x-amz-mp-parts-count头确认分片总数,再根据实际服务特性选择兼容方案,主流云厂商的对象存储服务均已支持上述接口,无需额外兼容。


内容的提问来源于stack exchange,提问作者C.M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 19:06:09