You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

S3分片上传除最后分片外均超5MB仍报EntityTooSmall错误原因咨询

S3分片上传触发最小分片大小报错的可能原因

前提校验

S3要求除最后一个分片外,其余分片最小为 5MiB(二进制单位),换算为字节是:
5 * 1024 * 1024 = 5242880 字节
对照你提供的分片大小,前8个分片均满足该阈值,最后1个分片1419593字节符合最后分片无最小限制的规则,触发报错的可能原因如下:

  • 分片编号与实际上传顺序不匹配
    调用CompleteMultipartUpload接口完成分片上传时,传入的分片列表顺序错误、遗漏分片,或者未将id为9的分片标记为最后一个分片,会导致S3判定所有分片都需要满足最小5MiB的要求,小于阈值的9号分片就会触发该报错。
  • 本地统计的分片大小与S3实际接收的大小不一致
    你统计的StreamLength是本地数据流的原始长度,如果开启了客户端侧加密、传输层自动追加校验信息、或者数据流读取时出现提前截断,会导致实际上传到S3的分片大小小于5242880字节,触发校验失败。你可以调用ListParts接口查询S3端实际存储的各分片大小,和本地统计值做核对。
  • 阈值计算使用了十进制单位
    如果你的分片大小判断逻辑用十进制5 * 1000 * 1000 = 5000000字节作为最小分片阈值,刚好卡在5000000到5242880字节之间的分片会被你判定为符合要求,但实际达不到S3的最小分片标准,触发报错。对照你提供的分片数据,id为5的分片仅比5242880大188字节,若存在计算误差很容易触发该问题。
  • 使用非AWS原生的S3兼容存储有更高限制
    如果你对接的是其他兼容S3接口的对象存储服务,部分服务商自定义了更高的最小分片阈值(常见为8MiB、10MiB),你的分片大小未达到对应服务商的要求,也会抛出相同报错。
  • 部分分片上传失败未补传
    如果前8个分片中存在上传失败的情况,你没有捕获到异常并重传,会导致S3端实际存储的对应分片大小为0或者不完整,小于最小阈值触发报错。

内容的提问来源于stack exchange,提问作者Chandu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:06:01