2014-11-11 4 views
2

을 setReadLimit) .setReadLimit (INT) "아마존 S3 클라이언트 S3에 파일을 업로드하는 동안, 우리는 (요청이 입력 스트림을 포함하는 경우, 최대 스트림 버퍼 크기가 request.getRequestClientOptions를 통해 구성 할 수 있습니다</p> <p>"하나 하나 사건이 무작위 오류 MSG를 받고

존재

소스 :. 우리는 최대 스트림 버퍼 크기를 설정할 수 https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java

자바 1.8.10 대한 AWS SDK 당 있듯이 request.getRequestClientOptions() setReadLimit 통해 요청에 따라 구성 할 (int)

우리는 com.amazonaws.services.s3.AmazonS3 객체를 사용하여 데이터를 업로드하고 있습니다.

사람은 우리가 com.amazonaws.services.s3.AmazonS3

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

답변

1

조금의 necroing를 통해 readlimit는()를 설정하는 방법을 제안 할 수 있습니다,하지만 당신은 PutObjectRequest를 만들고에 setReadLimit를 사용할 필요가 그 :

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

s3Client.putObject (putObjectRequest); 당신이 putObjectRequest(String, String, InputStream, ObjectMetadata)의 구현을 보면

, 당신은 그냥 PutObjectRequest를 만들고 당신은 InputStream로부터 데이터를 업로드하는 것처럼 putObject(PutObjectRequest)

+0

읽기 제한이 무엇인지 설명해 주시겠습니까? – Andre

2

에 소리가 있음을 전달하지만, 일시적인 오류 어떤 종류의 것을 볼 수있다 업로드를 방해하고 있습니다. InputStreams는 기본적으로 표시/재설정 가능하기 때문에 SDK는 요청을 다시 시도 할 수 없습니다. 오류 메시지는 버퍼 크기에 대한 지침을 제공하려고하지만 큰 데이터의 경우 어쨌든 메모리에 모든 데이터를로드하지 않으려합니다.

파일 소스에서 업로드 할 수 있다면이 오류가 다시 표시되지 않아야합니다. 파일을 다시 설정할 수 있기 때문에 SDK는 첫 번째 시도에서 오류가 발생하면 요청을 다시 시도 할 수 있습니다.