2017-01-31 12 views
0

Я приношу файл с Amazon S3 и обрабатываю его с помощью Spring Batch, все из которых интегрированы с Apache Camel.Как перенести файл после пакетной обработки Apache Camel?

После партии тело сообщения больше не является содержимым файла, это задание. Но я хочу переместить файл в другой ведро s3. Как я могу вернуть содержимое файла? (У меня есть заголовки)

(Использование S3 является косвенным)

 from("aws-s3://my-bucket...") 
      .idempotentConsumer(header("CamelAwsS3Key"), 
        MemoryIdempotentRepository.memoryIdempotentRepository(200)) 
      .setHeader("CamelFileName", simple("${in.header.CamelAwsS3Key}")) 
      .to("file:my-files/") 
      .log("Copied from S3.") 
      .to("spring-batch:historicoJob") 
      .choice() 
      .when(simple("${in.body.status} == 'COMPLETED'")) 
      .to("direct:moveIt") 
      .endChoice(); 

    from("direct:moveIt") 
      ... 
      .to("aws-s3://done-bucket..."); 

ответ

0

Вы можете получить доступ к исходному сообщению (есть некоторые апи на обмен верблюда -> единицы работы), или вы можете скопировать тело сообщения в свойство обмена до весенней партии, а затем снова восстановить его.