You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Stan Clowes <st...@gmail.com> on 2016/11/24 13:14:39 UTC

AWS S3 Consumer Bug

Hi

I've had a search through the issues but I think this is still a bug.
When an object is consumed from an AWS S3 endpoint it doesn't retrieve the
userMetadata correctly

The code here:
https://github.com/apache/camel/blob/master/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java

sets the S3Constants.S3_HEADERS header as so:

message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getRawMetadata());

This is using a method that is internal - see:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html

In addition the rawMetadata seems to hold many (if not all) of the other
headers thats are retrieved explicitly e.g. Content-Type, Content-Length
etc; but doesn't hold userMetadata

It should do this:

message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getUserMetadata());

If you want to get the userMetadata from the object. 

I have doen some tests with the SDK writing and reading objects with
userMetadata

Thought I would post here before I raise an issue.

Regards
Stan



--
View this message in context: http://camel.465427.n5.nabble.com/AWS-S3-Consumer-Bug-tp5790485.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: AWS S3 Consumer Bug

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Yeah I dont think we should call that internal API. You are welcome to
log a JIRA ticket (issue tracker).
http://camel.apache.org/support.html

Also maybe there is more of those ObjectMetadata we can store by
default as headers than those 10-15 we do today.

Contributions is welcome with a patch / github PR
http://camel.apache.org/contributing

On Thu, Nov 24, 2016 at 2:14 PM, Stan Clowes <st...@gmail.com> wrote:
> Hi
>
> I've had a search through the issues but I think this is still a bug.
> When an object is consumed from an AWS S3 endpoint it doesn't retrieve the
> userMetadata correctly
>
> The code here:
> https://github.com/apache/camel/blob/master/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
>
> sets the S3Constants.S3_HEADERS header as so:
>
> message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getRawMetadata());
>
> This is using a method that is internal - see:
> http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html
>
> In addition the rawMetadata seems to hold many (if not all) of the other
> headers thats are retrieved explicitly e.g. Content-Type, Content-Length
> etc; but doesn't hold userMetadata
>
> It should do this:
>
> message.setHeader(S3Constants.S3_HEADERS, objectMetadata.getUserMetadata());
>
> If you want to get the userMetadata from the object.
>
> I have doen some tests with the SDK writing and reading objects with
> userMetadata
>
> Thought I would post here before I raise an issue.
>
> Regards
> Stan
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/AWS-S3-Consumer-Bug-tp5790485.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2