2017-12-04 2 views
0

Ich teste eine Route, die auf eine Datei aus dem Verkaufsordner eines AWS S3-Buckets zugreift. Das Problem, vor dem ich stehe, ist der Moment, in dem alle Dateien aus dem Ordner gelesen werden, Camel löscht den Ordner. Ich verstehe, dass es keinen Begriff von Ordner in S3 gibt. Den Dateinamen wird der Ordnername vorangestellt.Apache Camel AWS S3-Bucket-Ordner löschen

Wie kann ich verhindern, dass der Ordner in S3 gelöscht wird, wenn alle Dateien gelesen und gelöscht werden.

Hier ist meine Strecke

from("aws-s3://departments?amazonS3Client=#s3Client&region=eu-west-1&prefix=sales") .to("file:C:\temp?fileName=${header.CamelAwsS3Key}");

+0

Welche Version von Camel verwenden Sie –

+0

Ich benutze Camel Version 2.18.3 –

Antwort

1

Kennen Sie Ihre Camel-Version wirklich, nebenbei helfen würde, um das Löschen der Datei vermeiden Sie verbrauchen Sie die deleteAfterRead Option verwenden können und es auf false gesetzt .

https://github.com/apache/camel/blob/master/components/camel-aws/src/main/docs/aws-s3-component.adoc

Auf diese Weise sollten Sie das Löschen vermeiden und zugleich jedesmal, wenn der Verbraucher abzufragen Sie erhalten die gleiche Menge von Datei können. Beachten Sie dieses letzte Verhalten.

+0

Ich hatte mit Option deleteAfterRead experimentiert. Aber es ist nicht für meinen Zweck geeignet, da ich die Datei nach dem Lesen löschen muss. Ich fange an, mich zu wundern, den Ordner nach dem Löschen aller Dateien in S3 Bucket-Ordner über Camel möglicherweise nicht möglich, da AWS S3 nicht das Konzept der Dateiordner hat. Ich würde mich freuen, wenn mir jemand mit einer Lösung helfen kann, die für meine Bedürfnisse funktioniert. –