Ich möchte Datei in S3 mit Alpakka hochladen und gleichzeitig mit Tika parsen, um seinen MimeType zu erhalten.Wie 2 Waschbecken eines anderen Typs zu kombinieren?
Ich habe 3 Teile Graph zur Zeit:
val fileSource: Source[ByteString, Any] // comes from Akka-HTTP
val fileUpload: Sink[ByteString, Future[MultipartUploadResult]] // created by S3Client from Alpakka
val mimeTypeDetection: Sink[ByteString, Future[MediaType.Binary]] // my implementation using Apache Tika
Ich mag beiden Ergebnisse an einem Ort erhalten, so etwas wie:
Future[(MultipartUploadResult, MediaType.Binary)]
Ich habe kein Problem mit Rundfunk-Teil:
val broadcast = builder.add(Broadcast[ByteString](2))
source ~> broadcast ~> fileUpload
broadcast ~> mimeTypeDetection
Allerdings habe ich ein Problem, Sinks zu komponieren. Methoden, die ich in der API und in der Dokumentation gefunden habe, gehen davon aus, dass entweder kombinierte Senken vom gleichen Typ sind oder dass ich Flüsse und nicht Senken ziehe.
Was ist der vorgeschlagene Ansatz in einem solchen Fall?