【问题标题】:Amazon s3 streaming in mule骡子中的亚马逊 s3 流式传输
【发布时间】: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


【解决方案1】:

为 Amazon S3 检查此连接器:http://mulesoft.github.io/s3-connector 我认为您可以根据需要使用get-objectcreate-object 操作来检索和上传文件。 HTH,马科斯。

【讨论】:

  • 您好 Marcos ..感谢您的回复..但是,正如我所说的,我需要一种使用 s3 进行流式传输的方法..相信获取并创建针对较小文件的任何问题的工作..我已经更新了问题带有代码示例和详细信息
  • 我认为您已经在流式传输内容文件。您是否收到大文件的任何错误?您还可以检查转换器中接收到的具体输入流类,以查看内容是否存储在内存中。此外,如果您需要在下载和上传文件时进行处理,您可以尝试使用转换器内部的输出流设置有效负载。
  • 我没有收到任何错误。处理就停在那里。我现在间歇性地看到一些内容,但对于大文件,它只是没有完全流式传输。流程读取文件的部分内容并停在那里。
  • mule 和 amazon 中的日志文件是什么意思?请提高日志级别以进行调试。可能是连接超时或亚马逊正在减慢它。
  • @RST 嘿,这是怎么回事?最后你能实现你需要的流媒体吗?我也有类似的要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 2012-03-30
  • 1970-01-01
  • 2010-10-20
  • 2012-05-01
  • 2018-02-10
相关资源
最近更新 更多