我需要从amazon s3流式传输大型文件,处理它们(转换)并将它们上传回s3。是否有一种更清洁的方式可以在骡子中实现。
我正在尝试的方法是使用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。
答案 0 :(得分:0)
检查此Amazon S3的连接器:http://mulesoft.github.io/s3-connector
我认为您可以使用get-object
和create-object
操作来根据需要检索和上传文件。
HTH,马科斯。