如何下载和处理大型S3文件?

时间:2019-03-23 01:56:44

标签: amazon-web-services amazon-s3 aws-sdk aws-java-sdk

我在S3中有一个很大的JSON文件(即100MB至3GB)。如何处理呢? 今天,我正在使用s3client.getObjectContent()来获取输入流并尝试进行处理。

在流式传输时,我将inputstream传递给Jackson jsonparser,并获取每个JSON对象,并调用另一个微服务来处理从s3输入流中检索到的JSON对象。

问题:

当我正在处理JSON对象时,S3流将关闭,而不处理S3的整个有效负载。

我收到警告:

  

S3AbortableInputStream:并非从S3ObjectInputStream读取所有字节,从而中止HTTP连接

我正在寻找一种处理大型S3有效负载的方法,而无需S3客户端在处理整个有效负载之前关闭流。任何最佳做法或见解都将受到赞赏。

约束:我需要将其作为流或以最小的内存占用进行处理。

1 个答案:

答案 0 :(得分:0)

能否请您对代码进行以下更改并检查?

从:

if (s3ObjectInputStream != null) {
                s3ObjectInputStream.abort();
            }

收件人:

if (s3ObjectInputStream == null) {
                s3ObjectInputStream.abort();
            }