2014-11-11 7 views
2

При загрузке файла на S3, мы получаем эти случайные ошибки Сообщи для одного случаяAmazon S3 клиент setReadLimit

«Если запрос включает в себя входной поток, максимальный размер буфера потока может быть сконфигурирован с помощью request.getRequestClientOptions () .setReadLimit (INT)»

источник существо: https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java

в соответствии с AWS SDK для Java 1.8.10 Мы можем установить максимальный размер буфера потока, чтобы быть сконфигурирован для каждого запроса с помощью request.getRequestClientOptions() setReadLimit. (int)

Мы используем объект com.amazonaws.services.s3.AmazonS3 для загрузки данных.

Может кто-нибудь подскажет, как мы можем установить ReadLimit() с помощью com.amazonaws.services.s3.AmazonS3

https://aws.amazon.com/releasenotes/0167195602185387

ответ

1

Немного necroing, но вам нужно создать PutObjectRequest и использовать setReadLimit на что:

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, fileInputStream, objectMetadata); 
putObjectRequest.getRequestClientOptions().setReadLimit(xxx); 

s3Client.putObject (putObjectRequest);

Если вы смотрите в реализации putObjectRequest(String, String, InputStream, ObjectMetadata), вы можете увидеть, что он просто создает PutObjectRequest и передает его в putObject(PutObjectRequest)

+0

Не могли бы вы объяснить, что такое предел чтения? – Andre

2

Это звучит, как вы загружаете данные из InputStream, но какая-то временная ошибка прерывает загрузку. SDK не может повторить запрос, потому что InputStreams по умолчанию отмечены/сброшены. Сообщение об ошибке пытается дать указания относительно размеров буфера, но для больших данных вы, вероятно, не хотите все равно загружать их в память.

Если вы можете загружать файлы из источника файлов, вы не должны видеть эту ошибку еще раз. Поскольку файлы сбрасываются, SDK может повторить ваш запрос, если он сталкивается с ошибкой во время первой попытки.

Смежные вопросы