并非使用Amazon SDK从S3检索的所有数据(仅1000个元素)

时间:2017-05-19 12:49:02

标签: java amazon-web-services amazon-s3

我在使用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());

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

AWS S3 API每个响应的最大限制为1000个。

您必须执行多个请求才能检索所有对象。

您可以在此处查看API:

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html

我找到了一个检索所有对象的示例:

How to list all AWS S3 objects in a bucket using Java