Я использую следующий фрагмент кода для перечисления объектов в корзине.
objectListing = client.listObjects(bucketname);
do{
for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
System.out.printf(" - %s (size: %d)\n", objectSummary.getKey(), objectSummary.getSize());
}
objectListing=s3Client.listNextBatchOfObjects(objectListing);
}while (objectListing.isTruncated());
Я не могу получить последнюю партию объектов. Я провел некоторые исследования по этому поводу, и партии были сохраненыв списке. Но я не могу использовать список, чтобы сохранить все объекты, так как есть миллионы объектов, и это иногда вызывает проблему кучи памяти. Как я могу получить все объекты. Спасибо !!!
Новое:
Я запускаю это:
BasicAWSCredentials credentials = new BasicAWSCredentials("foo", "bar");
client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://localhost:" + port, null))
.withPathStyleAccessEnabled(true)
.withChunkedEncodingDisabled(true)
.build();
ObjectListing listing = client.listObjects( "bucketname");
System.out.println("Listing size "+listing.getObjectSummaries().size());
System.out.println("At 0 index "+ listing.getObjectSummaries().get(0).getKey());
System.out.println("At 999 index "+ listing.getObjectSummaries().get(999).getKey());
while (listing.isTruncated()) {
System.out.println("-----------------------------------------------");
listing = client.listNextBatchOfObjects(listing);
System.out.println("Listing size "+listing.getObjectSummaries().size());
System.out.println("At 0 index "+ listing.getObjectSummaries().get(0).getKey());
System.out.println("At 999 index "+ listing.getObjectSummaries().get(1000).getKey());
}
Я получаю следующий результат:
Listing size 1000
At 0 index folder1/a.gz
At 999 index folder1/b.gz
---------------------------------------------------------------
Listing size 1001
At 0 index folder1/b.gz
At 1000 index folder1/d.gz
---------------------------------------------------------------
Listing size 1001
At 0 index folder1/d.gz
At 1000 index folder1/e.gz