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

Din*_*ius 3 java amazon-s3 amazon-web-services

我在使用 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());
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

kkf*_*flf 6

AWS S3 API 每个响应最多有 1000 个密钥的限制。

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

您可以在这里查看 API:

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

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

如何使用 Java 列出存储桶中的所有 AWS S3 对象