オブジェクトのツリーを依存関係の逆順で観察したいのですが、どのコンビネータを使用すればよいかわかりません。特定のケースでは、削除のために AWS リソースを反復処理します。たとえば、次のように、S3 バケットを削除する前に S3 オブジェクトを削除します。
val S3 = new AmazonS3Client
val buckets = Observable.from {
S3.listBuckets.asScala
}
val objects = buckets.flatMap { b => Observable.from(
S3.listObjects(new ListObjectsRequest().withBucketName(b.getName))
.getObjectSummaries
.asScala)
}
val combined:Observable[_] = ???
for (thing <- combined) thing match {
case b:Bucket => println("delete bucket")
case o:S3ObjectSummary => println("delete object")
}
したがって、最後のcombined
オブザーバブルは、バケットを発行する前にすべてのオブジェクトを発行する必要があります。そのためにどのコンビネーターを使用する必要がありますか?