2017-05-04 13 views
1

ファイルにSpring Integrationアウトバウンドチャネルアダプタを追加しました。このファイルに日付を追加して(たとえば、myfile_ddmmyyyy)、前日のファイルを取得してAWS S3バケットにアップロードしてローカルファイルを削除するプロセスを設定します。Spring Integrationを使用してAmazon S3に毎日ファイルを送信します。

Spring IntegrationとSpring AWS拡張を使用することは可能ですか、これを行うにはSpring Batch/custom processを使用する必要がありますか。

答えて

0

ファイルに書き込んだり追加したりする場合はFileWritingMessageHandlerFileExistsMode.APPENDを付けてください。

あなたは、いくつかのトリックを経由して達成することができます書いた後、いくつかのプロセスを開始するには:あなたがそのプロセスの第二のチャネルを持っている場合、そのプロセスは、第2の加入者
  • RecipientListSubscriberのようなものであるとき

    • PublishSubscribeChannel
    • ExpressionEvaluatingRequestHandlerAdvice取り付けますFileWritingMessageHandlerに送信し、successChannelオプションを使用してプロセスを開始します。

    ローカルファイルをAWS S3にアップロードするには、S3MessageHandlerをその(2番目の)チャンネルの(2番目の)サブスクライバとして使用する必要があります。注入された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

    ありがとうございましたArtem、私はこれを今日行こう:) – Swordfish

    関連する問題