我在使用Amazon SDK从S3检索数据时遇到问题。问题是它只检索了1000个元素,而aws_bucket_data
- >中确实有10,000个元素。 currentDataDirectory
。我不使用setMaxKeys(...)
,所以结果似乎很奇怪。
BasicAWSCredentials credentials = new BasicAWSCredentials("...", "...");
client = new AmazonS3Client(credentials);
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(aws_bucket_data)
.withPrefix(currentDataDirectory);
ObjectListing objectListing = client.listObjects(listObjectsRequest);
System.out.println(objectListing.getObjectSummaries().size());
我该如何解决这个问题?
答案 0 :(得分:4)
AWS S3 API每个响应的最大限制为1000个。
您必须执行多个请求才能检索所有对象。
您可以在此处查看API:
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html
我找到了一个检索所有对象的示例: