You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2016/04/27 20:36:13 UTC
[jira] [Commented] (CAMEL-8431) Consume all files in aws S3 bucket
where deleteAfterRead = false
[ https://issues.apache.org/jira/browse/CAMEL-8431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15260700#comment-15260700 ]
Claus Ibsen commented on CAMEL-8431:
------------------------------------
Yes this broke the component, see ticket CAMEL-9784.
> Consume all files in aws S3 bucket where deleteAfterRead = false
> ----------------------------------------------------------------
>
> Key: CAMEL-8431
> URL: https://issues.apache.org/jira/browse/CAMEL-8431
> Project: Camel
> Issue Type: Bug
> Components: camel-aws
> Affects Versions: 2.14.0
> Reporter: Yap Poh Soon
> Assignee: Willem Jiang
> Fix For: 2.15.4, 2.16.1, 2.17.0
>
>
> The current AWS S3Consumer class has a problem if user supply the parameter deleteAfterRead=false. The S3Consumer will always consume the same files over and over again with the size of getMaxMessagesPerPoll().
> After some code chasing, i think, the root cause is because the ListObjectsRequest does not has the previous marker value. Hence, i wonder if we could do something like below:
> {quote}
> {color:blue}private string marker; // new line to define the marker string {color}
> ..
> ..
> ..
> ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
> listObjectsRequest.setBucketName(bucketName);
> listObjectsRequest.setPrefix(getConfiguration().getPrefix());
> listObjectsRequest.setMaxKeys(maxMessagesPerPoll);
> {color:blue}listObjectsRequest.setMarker(marker); // new line to set the marker {color}
> ObjectListing listObjects = getAmazonS3Client().listObjects(listObjectsRequest);
> {color:blue}marker = listObjects.getMarker(); // where marker is track
> {color}{quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)