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

调用completeMultipartUpload遇S3 411 Content-Length缺失错误求助

解决S3 completeMultipartUpload接口411 Length Required错误

问题背景

调用S3兼容存储的completeMultipartUpload接口时返回411 Length Required错误,错误代码MissingContentLength,已确认接口参数(Bucket、Key、UploadId、Parts)结构合法,问题出在请求未携带Content-Length头。

解决方法

  • 升级AWS PHP SDK版本
    旧版本SDK可能存在自动计算并添加Content-Length头的逻辑缺陷,升级到AWS SDK for PHP v3的最新稳定版本,SDK会自动处理请求头的生成,多数情况下可直接解决问题。

  • 手动指定Content-Length请求头
    通过SDK的请求选项手动添加该头,计算请求体的长度并传入:

    // 计算Parts参数序列化后的长度
    $contentLength = strlen(json_encode(['Parts' => $parts]));
    
    $result = $s3->completeMultipartUpload([
        'Bucket' => $bucket,
        'Key' => $key,
        'UploadId' => $uploadId,
        'Parts' => $parts
    ], [
        '@http' => [
            'headers' => [
                'Content-Length' => $contentLength
            ]
        ]
    ]);
    
  • 排查代理/网络环境
    若服务通过代理访问存储服务,部分代理会篡改或移除Content-Length头,检查代理配置,确保其保留该请求头,或在代理层强制添加正确的Content-Length值。

  • 检查自定义HTTP客户端配置
    若你为SDK自定义了HTTP客户端(如Guzzle),确认客户端未禁用自动添加Content-Length的功能,确保客户端默认的请求头处理逻辑正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:20:09