2017-05-04 52 views
1

我有一個Spring Integration出站通道適配器附加到文件。我想爲此文件附加日期(例如myfile_ddmmyyyy),然後設置一個過程,該過程將前幾天的文件上傳到AWS S3存儲桶並刪除本地文件。使用Spring Integration將文件每日發送到Amazon S3

是否有可能使用Spring集成和Spring AWS擴展,或者是否需要使用Spring批處理/自定義進程來執行此操作。

回答

0

要寫入文件甚至追加您應使用FileWritingMessageHandlerFileExistsMode.APPEND

要在寫入,您可以通過多種技巧,實現後啓動一些過程:

  • PublishSubscribeChannel當這個過程就像是第二個用戶
  • RecipientListSubscriber當你有這個過程的第二通道
  • ExpressionEvaluatingRequestHandlerAdvice附加到FileWritingMessageHandler,並通過其successChannel選項啓動該過程。

要將本地文件上傳到AWS S3,您應該使用S3MessageHandler作爲該(第二)頻道的(第二)訂閱者。可以使用注入的S3ProgressListener來刪除本地文件。雖然你仍然可以使用上面提到的ExpressionEvaluatingRequestHandlerAdvice關於此事:

<int-aws:s3-outbound-channel-adapter s3="s3" ...> 
    <int-aws:request-handler-advice-chain> 
      <bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice"> 
       <property name="onSuccessExpressionString" value="payload.delete()"/> 
      </bean> 
    </int-aws:request-handler-advice-chain> 
</int-aws:s3-outbound-channel-adapter> 
+0

謝謝阿爾喬姆,我今天就給這個:) – Swordfish