我在S3中有一个很大的JSON文件(即100MB至3GB)。如何处理呢?
今天,我正在使用s3client.getObjectContent()
来获取输入流并尝试进行处理。
在流式传输时,我将inputstream
传递给Jackson jsonparser,并获取每个JSON对象,并调用另一个微服务来处理从s3输入流中检索到的JSON对象。
问题:
当我正在处理JSON对象时,S3流将关闭,而不处理S3的整个有效负载。
我收到警告:
S3AbortableInputStream:并非从S3ObjectInputStream读取所有字节,从而中止HTTP连接
我正在寻找一种处理大型S3有效负载的方法,而无需S3客户端在处理整个有效负载之前关闭流。任何最佳做法或见解都将受到赞赏。
约束:我需要将其作为流或以最小的内存占用进行处理。
答案 0 :(得分:0)
能否请您对代码进行以下更改并检查?
从:
if (s3ObjectInputStream != null) {
s3ObjectInputStream.abort();
}
收件人:
if (s3ObjectInputStream == null) {
s3ObjectInputStream.abort();
}