这给了我很大的头痛,所以我想我应该发布简单的解决方案。
我的问题是,在将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);


以防万一其他人遇到这个问题。

08-25 18:54