0

オブジェクトのツリーを依存関係の逆順で観察したいのですが、どのコンビネータを使用すればよいかわかりません。特定のケースでは、削除のために 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オブザーバブルは、バケットを発行する前にすべてのオブジェクトを発行する必要があります。そのためにどのコンビネーターを使用する必要がありますか?

4

1 に答える 1

1

オブジェクトの末尾に追加できますb。たとえば、

val objects = buckets.flatMap { b => Observable.from(
  S3.listObjects(new ListObjectsRequest().withBucketName(b.getName))
    .getObjectSummaries
    .asScala) :+ b
}
于 2015-08-14T09:35:41.140 に答える