当前位置: 首页 > 知识库问答 >
问题:

在apache camel中处理大型压缩文件

罗智志
2023-03-14

我正试图从ftp服务器获得一个带有.zip压缩的文件,并尝试使用Camel将其存储在带有.gzip压缩的S3中。下面是我目前拥有的路线。

from("sftp://username@host/file_path/?password=<password>&noop=true&streamDownload=true")
    .routeId("route_id")
    .setExchangePattern(ExchangePattern.InOut)
    .unmarshal().zipFile()
    .marshal().gzip()
    .to("aws-s3://s3_bucket_name?amazonS3Client=#client");

这对较小的文件很好用。但我的文件压缩时大小约为700 MB。对于这种大小的文件,我获得了OutOfMemoryError For Java堆空间
我知道在camel(.split(body().tokenize(“\n”)).streaming())中有一个流式处理选项,但我不确定是否可以在流式处理时进行marshal和marshal。(我在这里看到了一个类似的解决方案,但在本例中,源文件是纯文本/csv)。
问题的第二部分是将文件流回S3。我知道camel-aws组件中的multiPartUpload选项,但它似乎要求源代码是一个文件。我不知道如何做到这一点。

这能在不在自定义处理器中使用java代码处理(解压缩然后gzipping)文件的情况下实现吗?

环境:Camel 2.19.3,Java 8

谢谢

共有1个答案

景稳
2023-03-14

我使用streamcaching()解决了这个问题。所以我会这么做

from('xyz')
.streamCaching()
.unmarshall().gzip()
.to('abc')
.end()
 类似资料:
  • 本项目提供了 svg 压缩处理优化功能。基于 svgo实现。 npm run svgo 我们很多网上下载或者 Sketch 导出的 svg 会有很多冗余无用的信息,大大的增加了 svg 的尺寸,我们可以使用 svgo 对它进行优化。比如下图是用 Sketch 导出的一个 svg 我们可以执行npm run svgo 无用的信息都被处理掉了。 更多详细的配置 可以在 /src/icons/svgo

  • 本文向大家介绍在hadoop中文件的压缩带来了两大好处?相关面试题,主要包含被问及在hadoop中文件的压缩带来了两大好处?时的应答技巧和注意事项,需要的朋友参考一下 解答: (1)它减少了存储文件所需的空间; (2)加快了数据在网络上或者从磁盘上或到磁盘上的传输速度;

  • 我正试图用Java编写一个程序来解压大型机中PKZIP工具压缩的文件。然而,我试过以下三种方法,它们都不能解决我的问题。 > by exe. 我试图通过WinRAR、7Zip和Linux命令(解压)打开它。全部失败,错误信息如下: 档案不是格式未知就是损坏了 通过jdkapi-java。util。拉链 正如这个网站所描述的,我还尝试用JDKAPI解压它。但是,它失败并显示错误消息: IO错误:ja

  • 我正在使用Julia的ZipFile包来提取和处理csv文件。没问题,但是当我遇到zip文件中的zip文件时,我也想处理它,但是遇到了一个错误。 Julia ZipFile文档如下:https://zipfilejl.readthedocs.io/en/latest/ 对如何做到这一点有什么想法吗?

  • RAR 与 ZIP 对比 支持其它压缩文件格式 固实压缩文件 自解压文件 (SFX) 分割压缩文件 (多卷) 恢复卷 加密 压缩文件注释 保护压缩文件防止损坏 锁定压缩文件 怎样选择优化的压缩设置

  • 问题内容: 任何人都可以向我展示在我一直在搜索的Java中压缩和解压缩tar.gzip文件的正确方法,但是我能找到的最多是zip或gzip(单独)。 问题答案: 我最喜欢的是plexus-archiver-请参阅GitHub上的资源。 另一个选项是Apache commons- compress- (请参阅mvnrepository)。 使用plexus-utils,用于取消存档的代码如下所示: