1
我有一個Spring Integration出站通道適配器附加到文件。我想爲此文件附加日期(例如myfile_ddmmyyyy),然後設置一個過程,該過程將前幾天的文件上傳到AWS S3存儲桶並刪除本地文件。使用Spring Integration將文件每日發送到Amazon S3
是否有可能使用Spring集成和Spring AWS擴展,或者是否需要使用Spring批處理/自定義進程來執行此操作。
我有一個Spring Integration出站通道適配器附加到文件。我想爲此文件附加日期(例如myfile_ddmmyyyy),然後設置一個過程,該過程將前幾天的文件上傳到AWS S3存儲桶並刪除本地文件。使用Spring Integration將文件每日發送到Amazon S3
是否有可能使用Spring集成和Spring AWS擴展,或者是否需要使用Spring批處理/自定義進程來執行此操作。
要寫入文件甚至追加您應使用FileWritingMessageHandler
與FileExistsMode.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>
謝謝阿爾喬姆,我今天就給這個:) – Swordfish