Change introduced in #1334 is causing a regression with composeObject function in version 8.0.3.
PR dropped parsing of response body and relies only on header to get part ETag. When x-amz-copy-source: is used with multipart uploads, minio doesn't return etag in header but only in response body XML (as per S3 specification). Previous version relied on parsing body and this was changed with commit shown below:
40724aad4f917a0f1b70e8af73175382fdfab854
In result there's no ETag values related to parts uploaded and client sends following request to server:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Part>
<PartNumber>1</PartNumber>
<ETag/>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag/>
</Part>
<Part>
<PartNumber>3</PartNumber>
<ETag/>
</Part>
<Part>
<PartNumber>4</PartNumber>
<ETag/>
</Part>
</CompleteMultipartUpload>
resulting in 400 Bad Request response:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InvalidPart</Code>
<Message>One or more of the specified parts could not be found. The part may not have been uploaded, or the specified entity tag may not match the part's entity
tag.</Message>
<Key>kQvNbbSJG5</Key>
<BucketName>...</BucketName>
<Resource>/.../kQvNbbSJG5</Resource>
<RequestId>...</RequestId>
<HostId>...</HostId>
</Error>
Downgrading client to version 8.0.2 fixes this issue.
Change introduced in #1334 is causing a regression with
composeObjectfunction in version 8.0.3.PR dropped parsing of response body and relies only on header to get part ETag. When
x-amz-copy-source:is used with multipart uploads, minio doesn't returnetagin header but only in response body XML (as per S3 specification). Previous version relied on parsing body and this was changed with commit shown below:40724aad4f917a0f1b70e8af73175382fdfab854
In result there's no ETag values related to parts uploaded and client sends following request to server:
resulting in
400 Bad Requestresponse:Downgrading client to version 8.0.2 fixes this issue.