我正在尝试使用Alpakka S3 connector执行以下操作:
我使用的代码是这样的:
val s3Sink: Sink[ByteString, Future[MultipartUploadResult]] = S3.multipartUpload("my-s3-bucket", "archive.zip")
val sourceList = (1 to 10).map(i => S3.download("my-s3-bucket", s"random$i.png").map {
case Some((s, m)) => (ArchiveMetadata(s"${UUID.randomUUID()}.png"), s)
})
val source = Source.combine(sourceList.head, sourceList.tail.head, sourceList.tail.tail: _*)(Merge(_))
source
.via(Archive.zip())
.to(s3Sink)
.run()
但是,这将导致以下错误:
Response entity was not subscribed after 1 second. Make sure to read the response entity body or call `discardBytes()` on it.
我怀疑这是由于以下事实:S3连接器expects every download response to be consumed使用的基础Akka Http在移至下一个之前,但是我不能以合理的方式处理此问题而没有引入等待/延误。
我尝试将队列与bufferSize = 1
一起使用,但这也不起作用。
我对Akka和Akka Streams还是很陌生。