completeMultipartUpload:s3错误411内容长度

问题描述 投票:0回答:1

我收到内容长度 411 错误。 CompleteMultipartUpload 中的变量及其结构都是有效的。问题是内容长度标头:这是错误:

S3错误:在“https://v5l2.da.idrivee2-25.com/etc...”上执行“CompleteMultipartUpload”时出错; AWS HTTP 错误:客户端错误:

POST https://v5l2.da.idrivee2-25.com/lightvault-dev/0oTKAVReHXVwUuG?uploadId=582eab69-c4f6-47e0-9022-7df4b2702108
导致
411 Length Required
响应:

MissingContentLength
您必须提供 Content-Len(已截断...)MissingContentLength(客户端):您必须提供 Content-Length HTTP 标头。 -
MissingContentLength
您必须提供 Content-Length HTTP 标头。0oTKAVReHXVwUuGlightvault-dev/lightvault-dev/0oTKAVReHXVwUuG1780D527E55D2DBAdc178504-d6ed-4ffa-859f-95f1758bdcd1 请求 ID:1780D527E55D2DBA 错误类型:客户端 错误代码:缺少内容长度

        // Complete the multipart upload
        $result = $s3->completeMultipartUpload([
            'Bucket' => $bucket,
            'Key' => $key,
            'UploadId' => $uploadId,
            'Parts' => $parts
        ]);

        if ($result->get('@metadata')['HTTPStatusCode'] == 200) {
            echo "success";
        } else {
            echo $result->get('Error')['Message'];
        }
php amazon-s3 guzzle aws-php-sdk http-status-code-411
1个回答
0
投票

根据 Amazon Documentation,您需要指定 Content-Type 标头,并且根据您的错误消息,您似乎还需要指定 Content-Length 标头。我没有使用过 AWS,并且您没有显示您指定任何标头的位置的代码,因此我无法查看您是否指定了以及您指定的方式是否存在任何问题,但您需要指定这两个标题,如果你还没有的话。如果您确实指定了,那么可能存在语法错误,或者您指定它们的方式或时间有问题。您可以检查您发送的标头以确保 Content-Type 和 Content-Length 存在且正确吗?

© www.soinside.com 2019 - 2024. All rights reserved.