这给了我很大的头痛,所以我想我应该发布简单的解决方案。
我的问题是,在将Java API用于Amazon S3时,我只能下载50个对象,然后它才会神秘地超时。代码看起来像这样:
int counter = 0;
AmazonS3Client s3 = new AmazonS3Client(propertiesFile);
while(objectList.isTruncated()){
for(S3ObjectSummary objectSummary : objectList.getObjectSummaries()){
System.out.println(++counter);
S3Object object = s3.getObject(new GetObjectRequest(bucketName, objectSummary.getKey()));
//do stuff
}
}
它将运行并正确处理50个对象的所有内容,然后超时。
最佳答案
无论出于何种原因,主要问题是我已将s3声明为AmazonS3Client s3
。它应该看起来像:
AmazonS3 s3 = new AmazonS3Client(propertiesFile);
以防万一其他人遇到这个问题。