Repository: camel Updated Branches: refs/heads/master 4fa9ef24e -> ff87129bf
CAMEL-8006 S3Producer should use File to upload directly Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ff87129b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ff87129b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ff87129b Branch: refs/heads/master Commit: ff87129bf08548e1f1825f2fcd90cb7dee37ca27 Parents: 4fa9ef2 Author: Willem Jiang <willem.ji...@gmail.com> Authored: Fri Nov 7 14:37:52 2014 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Fri Nov 7 14:37:52 2014 +0800 ---------------------------------------------------------------------- .../java/org/apache/camel/component/aws/s3/S3Producer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ff87129b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java index 38db307..4d6f3ae 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java @@ -167,11 +167,15 @@ public class S3Producer extends DefaultProducer { File filePayload = null; Object obj = exchange.getIn().getMandatoryBody(); + PutObjectRequest putObjectRequest = null; if (obj instanceof File) { filePayload = (File) obj; - } - PutObjectRequest putObjectRequest = new PutObjectRequest(getConfiguration().getBucketName(), + // submit the request without loading it into memory + putObjectRequest = new PutObjectRequest(getConfiguration().getBucketName(), determineKey(exchange), filePayload); + } else { + putObjectRequest = new PutObjectRequest(getConfiguration().getBucketName(), determineKey(exchange), exchange.getIn().getMandatoryBody(InputStream.class), objectMetadata); + } String storageClass = determineStorageClass(exchange); if (storageClass != null) {