【发布时间】:2015-02-19 18:19:09
【问题描述】:
我需要从亚马逊 s3 流式传输大文件,处理它们(转换)并将它们上传回 s3。有没有更清洁的方法可以在 mule 中实现。
我尝试的方式是使用 s3-get 对象,然后添加一个 mule 转换器,它将读取输入流并处理然后尝试写回。示例代码如下:
<s3:config name="AmazonS3" accessKey="XXXXXX" secretKey="XXXXXX" doc:name="S3" />
<s3:get-object-content config-ref="AmazonS3"
bucketName="XXXXXX"
/>
<custom-transformer class="com.myapp.FileStreamer"
doc:name="Stream S3 files" />
转换器代码看起来像......
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
CSVReader reader = null;
InputStream inputStream = (InputStream) message.getPayload();
try {
reader = new CSVReader(new InputStreamReader(inputStream, "UTF-8"),CSVParser.DEFAULT_SEPARATOR,CSVParser.DEFAULT_QUOTE_CHARACTER, '\0');
String[] line=null;
while ((line = reader.readNext()) != null) {
System.out.println(line);
}
catch (IOException e1) {
......
}...............
我看不到为大文件打印的 sop。
【问题讨论】:
-
比什么更干净?你试过什么?我无法回答您的问题,但如果您提供更多详细信息,其他人也许可以。
标签: java amazon-s3 streaming mule