我最近不得不升级到 aws-java-sdk 1.11.108。我有一个 java 程序,可以将 s3 对象(8 到 10 GB 大小)下载到 EC2 盒子并将其作为流处理。该程序已经运行了 2 年以上,没有任何问题,但是在更新到最新版本的 aws-java-sdk 后,我的文件下载中途中止,日志中出现以下 WARN 消息(无一例外)
WARN:com.amazonaws.services.s3.internal.S3AbortableInputStream - Not all bytes were read from the S3ObjectInputStream, aborting HTTP connection. This is likely an error and may result in sub-optimal behavior. Request only the bytes you need via a ranged GET or drain the input stream after use.
S3Object s3Obj = s3client.getObject(new GetObjectRequest(bucketName, s3FileName));
Reader reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(s3Obj.getObjectContent());
如果有人能说出为什么流在没有抛出任何异常的情况下静默中止,我将不胜感激,以及使它工作的最佳方法是什么。
谢谢