Tenir compte par exemple sur la version de synchronisation et vieux sdk aws:Comment itérer pour les clés de fichier s3 via CompletableFuture dans aws sdk 2.0?
public void syncIterateObjects() {
AmazonS3 s3Client = null;
String marker = null;
do {
ObjectListing objects = s3Client.listObjects(
new ListObjectsRequest()
.withBucketName("bucket")
.withPrefix("prefix")
.withMarker(marker)
.withDelimiter("/")
.withMaxKeys(100)
);
marker = objects.getNextMarker();
} while (marker != null);
}
Tout est clair - faire/tout faire le travail. Considérons par exemple async et AWSD sdk 2,0
public void asyncIterateObjects() {
S3AsyncClient client = S3AsyncClient.builder().build()
final CompletableFuture<ListObjectsV2Response> response = client.listObjectsV2(ListObjectsV2Request.builder()
.delimiter("/")
.prefix("bucket")
.bucket("prefix")
.build())
.thenApply(Function.identity());
// what to do next ???
}
Ok je suis arrivé CompletableFuture, mais comment le cycle course pour passer le marqueur (nextContinuationToken
dans aws 2.0 sdk) entre précédent et suivant Future
?