Mule ESB: How to take all the files in a folder inside Bucket of Amazon S3 ( get object content)

杀马特。学长 韩版系。学妹 提交于 2019-12-25 03:14:10

问题


i'm using Amazon S3 , My bucket have mutiple files in a input folder.i need to take all files in a folder and process it, right now i can able to take one file and process it by providing the key value. But not sure how to take all the files in a bucket (input is my folder name in a bucket) at a one shot. Please find my config below

 <s3:config name="Amazon_S3" accessKey="myKey" secretKey="MySecretkey" doc:name="Amazon S3"/>
<flow name="s3Flow1" doc:name="s3Flow1">
    <http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8081" doc:name="HTTP"/>
   <logger message="*********Inside yes************" level="INFO" doc:name="Logger"/> 
    <s3:list-objects config-ref="Amazon_S3" bucketName="getfiles"  doc:name="Amazon S3" maxKeys="5" delimiter="/" prefix="input/"/>
    <json:object-to-json-transformer doc:name="Object to JSON"/>
    <logger message="..InsidePay..#[payload]********" level="INFO" doc:name="Logger"/>
    <s3:get-object-content config-ref="Amazon_S3" bucketName="my_backetName" key="input/test.xml"  doc:name="Amazon S3"/>
    <file:outbound-endpoint path="C:\OUT" responseTimeout="10000" doc:name="File" outputPattern="#[function:dateStamp].xml"/>
</flow>

When it try to add more files name or * value in Key =input/* . It is throwing error. Please help me on resolving the issue. Thanks in advance.


回答1:


You need to get the object content for each file. For this you could use the foreach router and use #[payload.getKey()] to get the current object's key:

<s3:list-objects config-ref="Amazon_S3" bucketName="getfiles"  doc:name="Amazon S3" maxKeys="5" delimiter="/" prefix="input/"/>

<foreach doc:name="For Each file">
 <s3:get-object-content config-ref="Amazon_S3" bucketName="my_backetName" key="#[payload.getKey()]"  doc:name="Amazon S3"/>
</foreach>


来源:https://stackoverflow.com/questions/25956403/mule-esb-how-to-take-all-the-files-in-a-folder-inside-bucket-of-amazon-s3-get

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!