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

调用S3 CompleteMultipartUpload报EntityTooSmall最小允许大小错误是什么原因

问题原因

你对S3分片上传的规则理解是正确的:只有最后一个分片可以小于5MB,其余所有非末尾分片都必须满足≥5MB的大小要求。本次报错的核心原因是单位换算错误:
你代码中用5_000_000作为分片阈值,但计算机存储单位中5MB对应的实际字节数是5 * 1024 * 1024 = 5242880,你的第一个分片仅5000004字节,远小于非末尾分片要求的最小大小,因此触发了EntityTooSmall错误。

修复方案

仅需将代码中分片上传的判断阈值修改为正确的5MB字节数即可:

def upload(self, chunk):
    '''Upload a chunk'''
    # 替换原有的5_000_000为正确的5MB对应字节数
    if len(self.buffer) >= 5 * 1024 * 1024:
        self._upload_buffer()
    self.buffer += chunk
额外优化建议

如果你的业务场景中存在上传文件总大小不足5MB的情况,可以在end方法中增加逻辑判断:如果当前分片总数为1且剩余buffer大小不足5MB,直接调用put_object接口上传整个文件,避免分片上传的额外开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:04