2017-01-11 11 views
1

を使用してAWS S3にファイルを移動:ファイル名を取得し、私は3つのS3バケット持っミュール

  1. 入力ファイル進行中
  2. 処理し、ファイル

「入力 - をファイル "バケットにはCSVファイルのリストが含まれており、バケットから各入力ファイル(ファイル名形式:ファイル名 - タイムスタンプ)を一度に1つずつ取得して「進行中」バケットに移動し、ワークフローが完了するとそれを「処理済みファイル」バケットに移動します。エラーの場合、すべてのファイル処理を停止する必要があります。

私の流れでは、csvファイルの内容を取得できますが、ファイル名への参照がないため、移動する必要があるファイルを指定できないため、上記の実装方法がわかりません。

上記の処理手順はどのように実装できますか?

XMLの流れ:使用されて

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.8.1" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd"> 

    <flow name="CsvToMongo" > 
     <poll doc:name="Poll"> 
      <s3:get-object-content config-ref="Amazon_S3__Configuration" bucketName="test-file-bucket" key="input-files/TestData.csv" mimeType="application/csv" doc:name="Amazon S3"/> 
     </poll> 
     <object-to-string-transformer encoding="UTF-8" mimeType="application/csv" doc:name="Object to String"/> 
     <logger message="#['**** Start writing CSV to database...']" level="INFO" doc:name="Logger: Start Process"/> 
    </flow> 
</mule> 

ソフトウェア: Anypointメーカー6.2 ミュール3.8.1

おかげ

答えて

0

私は最近使用したアプローチを受け取るためにSQSキューを設定することでしたバケツからのS3イベント。 (イベントをSQSキューに送信するようにバケットを構成します)。私のMuleの流れでは、私の入力ソースはSQSポーラーです。 S3イベントの構造はAWSでよく説明されており、JSON文字列(JSONオブジェクトに変換して使用する)であり、実際のファイル名を特定するのに必要なすべての関連情報が含まれています。それは非常にうまく動作しています。

関連する問題