Kiril Nugmanov created CAMEL-15678:
--------------------------------------

             Summary: camel-aws2-s3 multipart upload multiplies file size by 
number of parts
                 Key: CAMEL-15678
                 URL: https://issues.apache.org/jira/browse/CAMEL-15678
             Project: Camel
          Issue Type: Bug
          Components: camel-aws2
    Affects Versions: 3.5.0
            Reporter: Kiril Nugmanov


Camel AWS2 S3 incorectly defines upload part content on multipart upload:
{{org.apache.camel.component.aws2.s3.AWS2S3Producer:193}}
{code:java}
for (int part = 1; filePosition < contentLength; part++) {
    ... 
    ...
    String etag = getEndpoint().getS3Client().uploadPart(uploadRequest, 
RequestBody.fromFile(filePayload)).eTag();
 ...

}{code}
 

{{filePayload}} - is whole file to be uploaded. 

In case when file size is bigger than {{partSize}} (which by default is 25MB) - 
uploaded amount of content to S3 will be {{file.size * number_of_parts}}

 

Fix:
* define {{RequsetBody}} from stream:


{code:java}
InputStream inputStream = FileUtils.openInputStream(file);
IOUtils.skip(inputStream, filePosition);

completedParts.add(
        CompletedPart.builder()
                .partNumber(part)
                .eTag(amazonS3Client.uploadPart(uploadRequest, 
RequestBody.fromInputStream(inputStream, partSize)).eTag())
                .build()
); {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to