Вот предупреждение, которое я получаю:
S3AbortableInputStream: не все байты были прочитаны из S3ObjectInputStream, прерывая HTTP-соединение. Вероятно, это ошибка и может привести к субоптимальному поведению. Запросите только байты, которые вам понадобятся, через GET Ranged или слейте входной поток после использования.
Я попытался использовать try с ресурсами, но S3ObjectInputStream, похоже, не закрывается с помощью этого метода.
try (S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah blah
}
Я также пробовал код ниже и явно закрываю, но это тоже не работает:
S3Object s3object = s3Client.getObject(new GetObjectRequest(bucket, key));
S3ObjectInputStream s3ObjectInputStream = s3object.getObjectContent();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(s3ObjectInputStream, StandardCharsets.UTF_8));
){
//some code here blah blah
s3ObjectInputStream.close();
s3object.close();
}
Любая помощь будет оценена.
PS: Я только читаю две строки файла из S3, и файл имеет больше данных.